Change test to really test the cases we can hit
[oota-llvm.git] / test / Transforms / InstCombine / getelementptr.ll
1 ; The %A getelementptr instruction should be eliminated here
2
3 ; RUN: if as < %s | opt -instcombine -dce | dis | grep getelementptr | grep '%A'
4 ; RUN: then exit 1
5 ; RUN: else exit 0
6 ; RUN: fi
7
8 implementation
9
10 int *"foo1"(int * %I) { ; Test noop elimination
11         %A = getelementptr int* %I, uint 0
12         ret int * %A
13 }
14
15 int* %foo2(int* %I) {  ; Test noop elimination
16         %A = getelementptr int* %I
17         ret int* %A
18 }
19 int* %foo3(int * %I) { ; Test that two array indexing geps fold
20         %A = getelementptr int* %I, uint 17
21         %B = getelementptr int* %A, uint 4
22         ret int* %B
23 }
24
25 int* %foo4({int} *%I) { ; Test that two getelementptr insts fold
26         %A = getelementptr {int}* %I, uint 1
27         %B = getelementptr {int}* %A, uint 0, ubyte 0
28         ret int* %B
29 }