1 ; RUN: opt -S -rewrite-statepoints-for-gc -rs4gc-use-deopt-bundles < %s | FileCheck %s 2 3 declare void @f() 4 declare i32 @personality_function() 5 6 define void @test_id() gc "statepoint-example" personality i32 ()* @personality_function { 7 ; CHECK-LABEL: @test_id( 8 entry: 9 ; CHECK-LABEL: entry: 10 ; CHECK: invoke i32 (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 100, i32 0, void ()* @f 11 invoke void @f() "statepoint-id"="100" to label %normal_return unwind label %exceptional_return 12 13 normal_return: 14 ret void 15 16 exceptional_return: 17 %landing_pad4 = landingpad {i8*, i32} cleanup 18 ret void 19 } 20 21 define void @test_num_patch_bytes() gc "statepoint-example" personality i32 ()* @personality_function { 22 ; CHECK-LABEL: @test_num_patch_bytes( 23 entry: 24 ; CHECK-LABEL: entry: 25 ; CHECK: invoke i32 (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 2882400000, i32 99, void ()* @f, 26 invoke void @f() "statepoint-num-patch-bytes"="99" to label %normal_return unwind label %exceptional_return 27 28 normal_return: 29 ret void 30 31 exceptional_return: 32 %landing_pad4 = landingpad {i8*, i32} cleanup 33 ret void 34 } 35 36 declare void @do_safepoint() 37 define void @gc.safepoint_poll() { 38 entry: 39 call void @do_safepoint() 40 ret void 41 } 42 43 ; CHECK-NOT: statepoint-id 44 ; CHECK-NOT: statepoint-num-patch_bytes 45