Remove GCSE and LoadVN from the testsuite.
[oota-llvm.git] / test / Analysis / BasicAA / gcsetest.ll
1 ; Test that GCSE uses basicaa to do alias analysis, which is capable of 
2 ; disambiguating some obvious cases.  All loads should be removable in 
3 ; this testcase.
4
5 ; RUN: llvm-as < %s | opt -basicaa -gvn -instcombine -dce \
6 ; RUN: | llvm-dis | not grep load
7
8 @A = global i32 7
9 @B = global i32 8
10
11 define i32 @test() {
12         %A1 = load i32* @A
13
14         store i32 123, i32* @B  ; Store cannot alias @A
15
16         %A2 = load i32* @A
17         %X = sub i32 %A1, %A2
18         ret i32 %X
19 }
20
21 define i32 @test2() {
22         %A1 = load i32* @A
23         br label %Loop
24 Loop:
25         %AP = phi i32 [0, %0], [%X, %Loop]
26         store i32 %AP, i32* @B  ; Store cannot alias @A
27
28         %A2 = load i32* @A
29         %X = sub i32 %A1, %A2
30         %c = icmp eq i32 %X, 0
31         br i1 %c, label %out, label %Loop
32
33 out:
34         ret i32 %X
35 }
36
37 declare void @external()
38
39 define i32 @test3() {
40         %X = alloca i32
41         store i32 7, i32* %X
42         call void @external()
43         %V = load i32* %X
44         ret i32 %V
45 }
46