Use the llvm-upgrade program to upgrade llvm assembly.
[oota-llvm.git] / test / Analysis / LoadVN / dependent_loads.ll
1 ; RUN: llvm-upgrade < %s | llvm-as | opt -basicaa -load-vn -gcse -instcombine | llvm-dis | not grep sub
2
3 %S = type { int, sbyte }
4
5 sbyte %test(sbyte** %P) {
6         %A = load sbyte** %P
7         %B = load sbyte* %A
8
9         %X = load sbyte** %P
10         %Y = load sbyte* %X
11
12         %R = sub sbyte %B, %Y
13         ret sbyte %R
14 }
15
16 sbyte %test(%S ** %P) {
17         %A = load %S** %P
18         %B = getelementptr %S* %A, int 0, uint 1
19         %C = load sbyte* %B
20
21         %X = load %S** %P
22         %Y = getelementptr %S* %X, int 0, uint 1
23         %Z = load sbyte* %Y
24
25         %R = sub sbyte %C, %Z
26         ret sbyte %R
27 }