In some rare cases, the register allocator can spill registers but end up not utilizi...
[llvm/msp430.git] / test / Transforms / TailCallElim / intervening-inst.ll
blobae4f50941f810c1fb1f4fae57cf802352c884a27
1 ; This function contains intervening instructions which should be moved out of the way
2 ; RUN: llvm-as < %s | opt -tailcallelim | llvm-dis | not grep call
4 define i32 @Test(i32 %X) {
5 entry:
6         %tmp.1 = icmp eq i32 %X, 0              ; <i1> [#uses=1]
7         br i1 %tmp.1, label %then.0, label %endif.0
8 then.0:         ; preds = %entry
9         %tmp.4 = add i32 %X, 1          ; <i32> [#uses=1]
10         ret i32 %tmp.4
11 endif.0:                ; preds = %entry
12         %tmp.10 = add i32 %X, -1                ; <i32> [#uses=1]
13         %tmp.8 = call i32 @Test( i32 %tmp.10 )          ; <i32> [#uses=1]
14         %DUMMY = add i32 %X, 1          ; <i32> [#uses=0]
15         ret i32 %tmp.8