Fix bugs section.
[llvm-complete.git] / test / Analysis / LoadVN / dependent_loads.ll
blob168b640c9e759b95085d26a2c7f5d0a6a96e5fe2
1 ; RUN: llvm-upgrade < %s | llvm-as | opt -basicaa -load-vn -gcse -instcombine | llvm-dis | not grep sub
3 %S = type { int, sbyte }
5 sbyte %test(sbyte** %P) {
6         %A = load sbyte** %P
7         %B = load sbyte* %A
9         %X = load sbyte** %P
10         %Y = load sbyte* %X
12         %R = sub sbyte %B, %Y
13         ret sbyte %R
16 sbyte %test(%S ** %P) {
17         %A = load %S** %P
18         %B = getelementptr %S* %A, int 0, uint 1
19         %C = load sbyte* %B
21         %X = load %S** %P
22         %Y = getelementptr %S* %X, int 0, uint 1
23         %Z = load sbyte* %Y
25         %R = sub sbyte %C, %Z
26         ret sbyte %R