summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/Transforms/RewriteStatepointsForGC/constants.ll22
1 files changed, 22 insertions, 0 deletions
diff --git a/llvm/test/Transforms/RewriteStatepointsForGC/constants.ll b/llvm/test/Transforms/RewriteStatepointsForGC/constants.ll
index 0ae0380c38e..68d6fd13934 100644
--- a/llvm/test/Transforms/RewriteStatepointsForGC/constants.ll
+++ b/llvm/test/Transforms/RewriteStatepointsForGC/constants.ll
@@ -95,3 +95,25 @@ entry:
%res = extractelement <2 x i8 addrspace(1)*> <i8 addrspace(1)* @G, i8 addrspace(1)* @G>, i32 0
ret i8 addrspace(1)* %res
}
+
+define i8 addrspace(1)* @test6(i64 %arg) gc "statepoint-example" {
+entry:
+ ; Don't fail any assertions and don't record null as a live value
+ ; CHECK-LABEL: test6
+ ; CHECK: gc.statepoint
+ ; CHECK-NOT: call {{.*}}gc.relocate
+ %load_addr = getelementptr i8, i8 addrspace(1)* null, i64 %arg
+ call void @foo() [ "deopt"() ]
+ ret i8 addrspace(1)* %load_addr
+}
+
+define i8 addrspace(1)* @test7(i64 %arg) gc "statepoint-example" {
+entry:
+ ; Same as test7 but use regular constant instead of a null
+ ; CHECK-LABEL: test7
+ ; CHECK: gc.statepoint
+ ; CHECK-NOT: call {{.*}}gc.relocate
+ %load_addr = getelementptr i8, i8 addrspace(1)* inttoptr (i64 15 to i8 addrspace(1)*), i64 %arg
+ call void @foo() [ "deopt"() ]
+ ret i8 addrspace(1)* %load_addr
+}
OpenPOWER on IntegriCloud