Second part of pr16069
[oota-llvm.git] / test / Transforms / TailCallElim / intervening-inst.ll
1 ; This function contains intervening instructions which should be moved out of the way
2 ; RUN: opt < %s -tailcallelim -S | FileCheck %s
3
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 ; CHECK-NOT: call
14         %tmp.8 = call i32 @Test( i32 %tmp.10 )          ; <i32> [#uses=1]
15         %DUMMY = add i32 %X, 1          ; <i32> [#uses=0]
16         ret i32 %tmp.8
17 }
18