Revert "Fix LLVM C API for DataLayout"
[oota-llvm.git] / test / Transforms / PlaceSafepoints / basic.ll
index a21066a51576a9046f7e1ed0722334e50da2382a..32aa4da68f21ac25afecf62f3c6feb1e60954393 100644 (file)
@@ -10,6 +10,14 @@ entry:
   ret void
 }
 
+; On a non-gc function, we should NOT get an entry safepoint
+define void @test_negative() {
+; CHECK-LABEL: @test_negative
+entry:
+; CHECK-NOT: statepoint
+  ret void
+}
+
 ; Do we insert a backedge safepoint in a statically
 ; infinite loop?
 define void @test_backedge() gc "statepoint-example" {
@@ -51,11 +59,26 @@ entry:
   br label %other
 other:
 ; CHECK-LABEL: other
-; CHECK: statepoint 
+; CHECK: statepoint
+; CHECK-NOT: gc.result
   call void @foo()
   ret void
 }
 
+declare zeroext i1 @i1_return_i1(i1)
+
+define i1 @test_call_with_result() gc "statepoint-example" {
+; CHECK-LABEL: test_call_with_result
+; This is checking that a statepoint_poll + statepoint + result is
+; inserted for a function that takes 1 argument.
+; CHECK: gc.statepoint.p0f_isVoidf
+; CHECK: gc.statepoint.p0f_i1i1f
+; CHECK: (i64 2882400000, i32 0, i1 (i1)* @i1_return_i1, i32 1, i32 0, i1 false, i32 0, i32 0)
+; CHECK: %call1.2 = call i1 @llvm.experimental.gc.result.i1
+entry:
+  %call1 = tail call i1 (i1) @i1_return_i1(i1 false)
+  ret i1 %call1
+}
 
 ; This function is inlined when inserting a poll.  To avoid recursive 
 ; issues, make sure we don't place safepoints in it.