Use InstrSlots::NUM rather than pre-dividing by four. Also, mark this const.
[oota-llvm.git] / test / Analysis / LoadVN / dependent_loads.ll
1 ; RUN: llvm-as < %s | opt -basicaa -load-vn -gcse -instcombine | \
2 ; RUN: llvm-dis | not grep sub
3
4 %S = type { i32, i8 }
5
6 define i8 @test(i8** %P) {
7         %A = load i8** %P               ; <i8*> [#uses=1]
8         %B = load i8* %A                ; <i8> [#uses=1]
9         %X = load i8** %P               ; <i8*> [#uses=1]
10         %Y = load i8* %X                ; <i8> [#uses=1]
11         %R = sub i8 %B, %Y              ; <i8> [#uses=1]
12         ret i8 %R
13 }
14
15 define i8 @test1(%S** %P) {
16         %A = load %S** %P               ; <%S*> [#uses=1]
17         %B = getelementptr %S* %A, i32 0, i32 1         ; <i8*> [#uses=1]
18         %C = load i8* %B                ; <i8> [#uses=1]
19         %X = load %S** %P               ; <%S*> [#uses=1]
20         %Y = getelementptr %S* %X, i32 0, i32 1         ; <i8*> [#uses=1]
21         %Z = load i8* %Y                ; <i8> [#uses=1]
22         %R = sub i8 %C, %Z              ; <i8> [#uses=1]
23         ret i8 %R
24 }
25