Mercurial > hg > CbC > CbC_llvm
comparison test/Analysis/BasicAA/gcsetest.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 |
---|---|
10 ; CHECK: define i32 @test() | 10 ; CHECK: define i32 @test() |
11 ; CHECK-NEXT: store i32 123, i32* @B | 11 ; CHECK-NEXT: store i32 123, i32* @B |
12 ; CHECK-NEXT: ret i32 0 | 12 ; CHECK-NEXT: ret i32 0 |
13 | 13 |
14 define i32 @test() { | 14 define i32 @test() { |
15 %A1 = load i32* @A | 15 %A1 = load i32, i32* @A |
16 | 16 |
17 store i32 123, i32* @B ; Store cannot alias @A | 17 store i32 123, i32* @B ; Store cannot alias @A |
18 | 18 |
19 %A2 = load i32* @A | 19 %A2 = load i32, i32* @A |
20 %X = sub i32 %A1, %A2 | 20 %X = sub i32 %A1, %A2 |
21 ret i32 %X | 21 ret i32 %X |
22 } | 22 } |
23 | 23 |
24 ; CHECK: define i32 @test2() | 24 ; CHECK: define i32 @test2() |
28 ; CHECK-NEXT: br i1 true, label %out, label %Loop | 28 ; CHECK-NEXT: br i1 true, label %out, label %Loop |
29 ; CHECK: out: | 29 ; CHECK: out: |
30 ; CHECK-NEXT: ret i32 0 | 30 ; CHECK-NEXT: ret i32 0 |
31 | 31 |
32 define i32 @test2() { | 32 define i32 @test2() { |
33 %A1 = load i32* @A | 33 %A1 = load i32, i32* @A |
34 br label %Loop | 34 br label %Loop |
35 Loop: | 35 Loop: |
36 %AP = phi i32 [0, %0], [%X, %Loop] | 36 %AP = phi i32 [0, %0], [%X, %Loop] |
37 store i32 %AP, i32* @B ; Store cannot alias @A | 37 store i32 %AP, i32* @B ; Store cannot alias @A |
38 | 38 |
39 %A2 = load i32* @A | 39 %A2 = load i32, i32* @A |
40 %X = sub i32 %A1, %A2 | 40 %X = sub i32 %A1, %A2 |
41 %c = icmp eq i32 %X, 0 | 41 %c = icmp eq i32 %X, 0 |
42 br i1 %c, label %out, label %Loop | 42 br i1 %c, label %out, label %Loop |
43 | 43 |
44 out: | 44 out: |
53 | 53 |
54 define i32 @test3() { | 54 define i32 @test3() { |
55 %X = alloca i32 | 55 %X = alloca i32 |
56 store i32 7, i32* %X | 56 store i32 7, i32* %X |
57 call void @external() | 57 call void @external() |
58 %V = load i32* %X | 58 %V = load i32, i32* %X |
59 ret i32 %V | 59 ret i32 %V |
60 } | 60 } |
61 | 61 |