comparison test/Analysis/BasicAA/invariant_load.ll @ 95:afa8332a0e37 LLVM3.8

LLVM 3.8
author Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
date Tue, 13 Oct 2015 17:48:58 +0900
parents 60c9769439b8
children
comparison
equal deleted inserted replaced
84:f3e34b893a5f 95:afa8332a0e37
8 ; return *p + 1; 8 ; return *p + 1;
9 ; } 9 ; }
10 10
11 define i32 @foo(i32* nocapture %p, i8* nocapture %q) { 11 define i32 @foo(i32* nocapture %p, i8* nocapture %q) {
12 entry: 12 entry:
13 %0 = load i32* %p, align 4, !invariant.load !3 13 %0 = load i32, i32* %p, align 4, !invariant.load !3
14 %conv = trunc i32 %0 to i8 14 %conv = trunc i32 %0 to i8
15 store i8 %conv, i8* %q, align 1 15 store i8 %conv, i8* %q, align 1
16 %1 = load i32* %p, align 4, !invariant.load !3 16 %1 = load i32, i32* %p, align 4, !invariant.load !3
17 %add = add nsw i32 %1, 1 17 %add = add nsw i32 %1, 1
18 ret i32 %add 18 ret i32 %add
19 19
20 ; CHECK: foo 20 ; CHECK: foo
21 ; CHECK: %0 = load i32* %p 21 ; CHECK: %0 = load i32, i32* %p
22 ; CHECK: store i8 %conv, i8* %q, 22 ; CHECK: store i8 %conv, i8* %q,
23 ; CHECK: %add = add nsw i32 %0, 1 23 ; CHECK: %add = add nsw i32 %0, 1
24 } 24 }
25 25
26 !3 = !{} 26 !3 = !{}