The instcombiner should canonicalize comparisons.
[oota-llvm.git] / test / Transforms / DeadArgElim / deadretval2.ll
1 ; RUN: llvm-as < %s | opt -deadargelim -die | llvm-dis | not grep DEAD
2
3 %P = external global int 
4
5 implementation
6
7
8 internal int %test(int %DEADARG) {  ; Dead arg only used by dead retval
9         ret int %DEADARG
10 }
11
12 internal int %test2(int %DEADARG) {
13         %DEADRETVAL = call int %test(int %DEADARG)
14         ret int %DEADRETVAL
15 }
16
17 void %test3(int %X) {
18         %DEADRETVAL = call int %test2(int %X)
19         ret void
20 }
21
22 internal int %foo() {
23         %DEAD = load int* %P
24         ret int %DEAD
25 }
26
27 internal int %id(int %X) {
28         ret int %X
29 }
30
31 void %test4() {
32         %DEAD = call int %foo()
33         %DEAD2 = call int %id(int %DEAD)
34         ret void
35 }
36