diff --git a/test/Transforms/TailCallElim/intervening-inst.ll b/test/Transforms/TailCallElim/intervening-inst.ll new file mode 100644 index 00000000000..92873b8a2dc --- /dev/null +++ b/test/Transforms/TailCallElim/intervening-inst.ll @@ -0,0 +1,19 @@ +; This function contains intervening instructions which should be moved out of the way +; RUN: llvm-as < %s | opt -tailcallelim | llvm-dis | not grep call + +int %Test(int %X) { +entry: + %tmp.1 = seteq int %X, 0 + br bool %tmp.1, label %then.0, label %endif.0 + +then.0: + %tmp.4 = add int %X, 1 + ret int %tmp.4 + +endif.0: + %tmp.10 = add int %X, -1 + %tmp.8 = call int %Test(int %tmp.10) + %DUMMY = add int %X, 1 ;; This should not prevent elimination + ret int %tmp.8 +} +