blob: 870c62d4ff9c45f3d14762f61130fc92a9a77f55 [file] [log] [blame]
Chris Lattner8c4b0d02003-06-26 05:05:51 +00001; This test makes sure that these instructions are properly eliminated.
2;
3
Misha Brukmanedf4bab2003-09-16 15:29:54 +00004; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep load
Chris Lattner8c4b0d02003-06-26 05:05:51 +00005
6%X = constant int 42
7%Y = constant [2 x { int, float }] [ { int, float } { int 12, float 1.0 },
8 { int, float } { int 37, float 1.2312 } ]
Chris Lattner9b387432004-05-27 17:28:55 +00009%Z = constant [2 x { int, float }] zeroinitializer
Chris Lattner8c4b0d02003-06-26 05:05:51 +000010
Chris Lattner3a451492004-05-27 17:43:33 +000011int %test1() {
12 %B = load int* %X
13 ret int %B
14}
15
Chris Lattner8c4b0d02003-06-26 05:05:51 +000016float %test2() {
17 %A = getelementptr [2 x { int, float}]* %Y, long 0, long 1, ubyte 1
18 %B = load float* %A
19 ret float %B
20}
21
Chris Lattner9b387432004-05-27 17:28:55 +000022
Chris Lattner8c4b0d02003-06-26 05:05:51 +000023int %test3() {
24 %A = getelementptr [2 x { int, float}]* %Y, long 0, long 0, ubyte 0
25 %B = load int* %A
26 ret int %B
27}
28
Chris Lattner9b387432004-05-27 17:28:55 +000029int %test4() {
30 %A = getelementptr [2 x { int, float}]* %Z, long 0, long 1, ubyte 0
31 %B = load int* %A
32 ret int %B
33}