blob: 331ba2110e84c0c336f8e886e323ff60fab05ae6 [file] [log] [blame]
Chris Lattnerffdc4ff2004-04-11 16:47:15 +00001; RUN: llvm-as < %s | opt -basicaa -load-vn -gcse -instcombine | llvm-dis | not grep sub
2
Chris Lattner4a1f2e32004-04-11 19:01:35 +00003%S = type { int, sbyte }
4
Chris Lattnerffdc4ff2004-04-11 16:47:15 +00005sbyte %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}
Chris Lattner4a1f2e32004-04-11 19:01:35 +000015
16sbyte %test(%S ** %P) {
17 %A = load %S** %P
Reid Spencere5d4efa2006-11-23 15:14:52 +000018 %B = getelementptr %S* %A, int 0, uint 1
Chris Lattner4a1f2e32004-04-11 19:01:35 +000019 %C = load sbyte* %B
20
21 %X = load %S** %P
Reid Spencere5d4efa2006-11-23 15:14:52 +000022 %Y = getelementptr %S* %X, int 0, uint 1
Chris Lattner4a1f2e32004-04-11 19:01:35 +000023 %Z = load sbyte* %Y
24
25 %R = sub sbyte %C, %Z
26 ret sbyte %R
27}