1 ; This test makes sure that these instructions are properly eliminated.
3 ; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | not grep load
7 %Y = constant [2 x { int, float }] [ { int, float } { int 12, float 1.0 },
8 { int, float } { int 37, float 0x3FF3B2FEC0000000 } ]
9 %Z = constant [2 x { int, float }] zeroinitializer
17 %A = getelementptr [2 x { int, float}]* %Y, long 0, long 1, uint 1
24 %A = getelementptr [2 x { int, float}]* %Y, long 0, long 0, uint 0
30 %A = getelementptr [2 x { int, float}]* %Z, long 0, long 1, uint 0
35 ; load (select (Cond, &V1, &V2)) --> select(Cond, load &V1, load &V2)
37 %Y = select bool %C, int* %X, int* %X2
43 %V = getelementptr int* null, int %X
50 %X = load int* %P ;; Trivial store->load forwarding
55 %X = load int* %P ;; Trivial load cse
61 int %test10(bool %C, int* %P, int* %Q) {
62 br bool %C, label %T, label %F
71 %V = load int* %P ;; always 0