[TRE] Merged several tests into the the test basic.ll.
[oota-llvm.git] / test / Transforms / TailCallElim / setjmp.ll
index 35bb75dddb30ea55633ee0dfd4774fcd64202d97..4ce6ac7965e9995dd53be9fd439d016973f5ef83 100644 (file)
@@ -1,10 +1,14 @@
 ; RUN: opt < %s -tailcallelim -S | FileCheck %s
 
-; Test that we don't tail call in a functions that calls setjmp.
+; Test that we don't tail call in a functions that calls returns_twice
+; functions.
 
+declare void @bar()
+
+; CHECK: foo1
 ; CHECK-NOT: tail call void @bar()
 
-define void @foo(i32* %x) {
+define void @foo1(i32* %x) {
 bb:
   %tmp75 = tail call i32 @setjmp(i32* %x)
   call void @bar()
@@ -13,4 +17,13 @@ bb:
 
 declare i32 @setjmp(i32*) returns_twice
 
-declare void @bar()
+; CHECK: foo2
+; CHECK-NOT: tail call void @bar()
+
+define void @foo2(i32* %x) {
+bb:
+  %tmp75 = tail call i32 @zed2(i32* %x)
+  call void @bar()
+  ret void
+}
+declare i32 @zed2(i32*) returns_twice