comparison test/CodeGen/X86/statepoint-invoke.ll @ 100:7d135dc70f03 LLVM 3.9

LLVM 3.9
author Miyagi Mitsuki <e135756@ie.u-ryukyu.ac.jp>
date Tue, 26 Jan 2016 22:53:40 +0900
parents afa8332a0e37
children 803732b1fca8
comparison
equal deleted inserted replaced
96:6418606d0ead 100:7d135dc70f03
12 gc "statepoint-example" personality i32 ()* @"personality_function" { 12 gc "statepoint-example" personality i32 ()* @"personality_function" {
13 entry: 13 entry:
14 ; CHECK: Ltmp{{[0-9]+}}: 14 ; CHECK: Ltmp{{[0-9]+}}:
15 ; CHECK: callq some_call 15 ; CHECK: callq some_call
16 ; CHECK: Ltmp{{[0-9]+}}: 16 ; CHECK: Ltmp{{[0-9]+}}:
17 %0 = invoke i32 (i64, i32, void (i64 addrspace(1)*)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidp1i64f(i64 0, i32 0, void (i64 addrspace(1)*)* @some_call, i32 1, i32 0, i64 addrspace(1)* %obj, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0, i64 addrspace(1)* %obj, i64 addrspace(1)* %obj1) 17 %0 = invoke token (i64, i32, void (i64 addrspace(1)*)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidp1i64f(i64 0, i32 0, void (i64 addrspace(1)*)* @some_call, i32 1, i32 0, i64 addrspace(1)* %obj, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0, i64 addrspace(1)* %obj, i64 addrspace(1)* %obj1)
18 to label %invoke_safepoint_normal_dest unwind label %exceptional_return 18 to label %invoke_safepoint_normal_dest unwind label %exceptional_return
19 19
20 invoke_safepoint_normal_dest: 20 invoke_safepoint_normal_dest:
21 ; CHECK: movq 21 ; CHECK: movq
22 %obj.relocated = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(i32 %0, i32 13, i32 13) 22 %obj.relocated = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(token %0, i32 13, i32 13)
23 %obj1.relocated = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(i32 %0, i32 14, i32 14) 23 %obj1.relocated = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(token %0, i32 14, i32 14)
24 br label %normal_return 24 br label %normal_return
25 25
26 normal_return: 26 normal_return:
27 ; CHECK: retq 27 ; CHECK: retq
28 ret i64 addrspace(1)* %obj.relocated 28 ret i64 addrspace(1)* %obj.relocated
29 29
30 exceptional_return: 30 exceptional_return:
31 ; CHECK: Ltmp{{[0-9]+}}: 31 ; CHECK: Ltmp{{[0-9]+}}:
32 ; CHECK: movq 32 ; CHECK: movq
33 ; CHECK: retq 33 ; CHECK: retq
34 %landing_pad = landingpad { i8*, i32 } 34 %landing_pad = landingpad token
35 cleanup 35 cleanup
36 %relocate_token = extractvalue { i8*, i32 } %landing_pad, 1 36 %obj.relocated1 = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(token %landing_pad, i32 13, i32 13)
37 %obj.relocated1 = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(i32 %relocate_token, i32 13, i32 13) 37 %obj1.relocated1 = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(token %landing_pad, i32 14, i32 14)
38 %obj1.relocated1 = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(i32 %relocate_token, i32 14, i32 14)
39 ret i64 addrspace(1)* %obj1.relocated1 38 ret i64 addrspace(1)* %obj1.relocated1
40 } 39 }
41 ; CHECK-LABEL: GCC_except_table{{[0-9]+}}: 40 ; CHECK-LABEL: GCC_except_table{{[0-9]+}}:
42 ; CHECK: .long .Ltmp{{[0-9]+}}-.Ltmp{{[0-9]+}} 41 ; CHECK: .long .Ltmp{{[0-9]+}}-.Ltmp{{[0-9]+}}
43 ; CHECK: .long .Ltmp{{[0-9]+}}-.Lfunc_begin{{[0-9]+}} 42 ; CHECK: .long .Ltmp{{[0-9]+}}-.Lfunc_begin{{[0-9]+}}
44 ; CHECK: .byte 0 43 ; CHECK: .byte 0
45 ; CHECK: .align 4 44 ; CHECK: .p2align 4
46 45
47 define i64 addrspace(1)* @test_result(i64 addrspace(1)* %obj, 46 define i64 addrspace(1)* @test_result(i64 addrspace(1)* %obj,
48 i64 addrspace(1)* %obj1) 47 i64 addrspace(1)* %obj1)
49 gc "statepoint-example" personality i32 ()* @personality_function { 48 gc "statepoint-example" personality i32 ()* @personality_function {
50 entry: 49 entry:
51 ; CHECK: .Ltmp{{[0-9]+}}: 50 ; CHECK: .Ltmp{{[0-9]+}}:
52 ; CHECK: callq some_other_call 51 ; CHECK: callq some_other_call
53 ; CHECK: .Ltmp{{[0-9]+}}: 52 ; CHECK: .Ltmp{{[0-9]+}}:
54 %0 = invoke i32 (i64, i32, i64 addrspace(1)* (i64 addrspace(1)*)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_p1i64p1i64f(i64 0, i32 0, i64 addrspace(1)* (i64 addrspace(1)*)* @some_other_call, i32 1, i32 0, i64 addrspace(1)* %obj, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0, i64 addrspace(1)* %obj, i64 addrspace(1)* %obj1) 53 %0 = invoke token (i64, i32, i64 addrspace(1)* (i64 addrspace(1)*)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_p1i64p1i64f(i64 0, i32 0, i64 addrspace(1)* (i64 addrspace(1)*)* @some_other_call, i32 1, i32 0, i64 addrspace(1)* %obj, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0, i64 addrspace(1)* %obj, i64 addrspace(1)* %obj1)
55 to label %normal_return unwind label %exceptional_return 54 to label %normal_return unwind label %exceptional_return
56 55
57 normal_return: 56 normal_return:
58 ; CHECK: popq 57 ; CHECK: popq
59 ; CHECK: retq 58 ; CHECK: retq
60 %ret_val = call i64 addrspace(1)* @llvm.experimental.gc.result.p1i64(i32 %0) 59 %ret_val = call i64 addrspace(1)* @llvm.experimental.gc.result.p1i64(token %0)
61 ret i64 addrspace(1)* %ret_val 60 ret i64 addrspace(1)* %ret_val
62 61
63 exceptional_return: 62 exceptional_return:
64 ; CHECK: .Ltmp{{[0-9]+}}: 63 ; CHECK: .Ltmp{{[0-9]+}}:
65 ; CHECK: movq 64 ; CHECK: movq
66 %landing_pad = landingpad { i8*, i32 } 65 %landing_pad = landingpad token
67 cleanup 66 cleanup
68 %relocate_token = extractvalue { i8*, i32 } %landing_pad, 1 67 %obj.relocated = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(token %landing_pad, i32 13, i32 13)
69 %obj.relocated = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(i32 %relocate_token, i32 13, i32 13)
70 ret i64 addrspace(1)* %obj.relocated 68 ret i64 addrspace(1)* %obj.relocated
71 } 69 }
72 ; CHECK-LABEL: GCC_except_table{{[0-9]+}}: 70 ; CHECK-LABEL: GCC_except_table{{[0-9]+}}:
73 ; CHECK: .long .Ltmp{{[0-9]+}}-.Ltmp{{[0-9]+}} 71 ; CHECK: .long .Ltmp{{[0-9]+}}-.Ltmp{{[0-9]+}}
74 ; CHECK: .long .Ltmp{{[0-9]+}}-.Lfunc_begin{{[0-9]+}} 72 ; CHECK: .long .Ltmp{{[0-9]+}}-.Lfunc_begin{{[0-9]+}}
75 ; CHECK: .byte 0 73 ; CHECK: .byte 0
76 ; CHECK: .align 4 74 ; CHECK: .p2align 4
77 75
78 define i64 addrspace(1)* @test_same_val(i1 %cond, i64 addrspace(1)* %val1, i64 addrspace(1)* %val2, i64 addrspace(1)* %val3) 76 define i64 addrspace(1)* @test_same_val(i1 %cond, i64 addrspace(1)* %val1, i64 addrspace(1)* %val2, i64 addrspace(1)* %val3)
79 gc "statepoint-example" personality i32 ()* @"personality_function" { 77 gc "statepoint-example" personality i32 ()* @"personality_function" {
80 entry: 78 entry:
81 br i1 %cond, label %left, label %right 79 br i1 %cond, label %left, label %right
83 left: 81 left:
84 ; CHECK-LABEL: %left 82 ; CHECK-LABEL: %left
85 ; CHECK: movq %rdx, 8(%rsp) 83 ; CHECK: movq %rdx, 8(%rsp)
86 ; CHECK: movq 84 ; CHECK: movq
87 ; CHECK: callq some_call 85 ; CHECK: callq some_call
88 %sp1 = invoke i32 (i64, i32, void (i64 addrspace(1)*)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidp1i64f(i64 0, i32 0, void (i64 addrspace(1)*)* @some_call, i32 1, i32 0, i64 addrspace(1)* %val1, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0, i64 addrspace(1)* %val1, i64 addrspace(1)* %val2) 86 %sp1 = invoke token (i64, i32, void (i64 addrspace(1)*)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidp1i64f(i64 0, i32 0, void (i64 addrspace(1)*)* @some_call, i32 1, i32 0, i64 addrspace(1)* %val1, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0, i64 addrspace(1)* %val1, i64 addrspace(1)* %val2)
89 to label %left.relocs unwind label %exceptional_return.left 87 to label %left.relocs unwind label %exceptional_return.left
90 88
91 left.relocs: 89 left.relocs:
92 ; CHECK: movq (%rsp), 90 ; CHECK: movq (%rsp),
93 ; CHECK: movq 8(%rsp), [[REGVAL2:%[a-z]+]] 91 ; CHECK: movq 8(%rsp), [[REGVAL2:%[a-z]+]]
94 %val1.relocated = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(i32 %sp1, i32 13, i32 13) 92 %val1.relocated = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(token %sp1, i32 13, i32 13)
95 %val2.relocated_left = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(i32 %sp1, i32 14, i32 14) 93 %val2.relocated_left = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(token %sp1, i32 14, i32 14)
96 br label %normal_return 94 br label %normal_return
97 95
98 right: 96 right:
99 ; CHECK-LABEL: %right 97 ; CHECK-LABEL: %right
100 ; CHECK: movq 98 ; CHECK: movq
101 ; CHECK: movq %rdx, (%rsp) 99 ; CHECK: movq %rdx, (%rsp)
102 ; CHECK: callq some_call 100 ; CHECK: callq some_call
103 %sp2 = invoke i32 (i64, i32, void (i64 addrspace(1)*)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidp1i64f(i64 0, i32 0, void (i64 addrspace(1)*)* @some_call, i32 1, i32 0, i64 addrspace(1)* %val1, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0, i64 addrspace(1)* %val2, i64 addrspace(1)* %val3) 101 %sp2 = invoke token (i64, i32, void (i64 addrspace(1)*)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidp1i64f(i64 0, i32 0, void (i64 addrspace(1)*)* @some_call, i32 1, i32 0, i64 addrspace(1)* %val1, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0, i64 addrspace(1)* %val2, i64 addrspace(1)* %val3)
104 to label %right.relocs unwind label %exceptional_return.right 102 to label %right.relocs unwind label %exceptional_return.right
105 103
106 right.relocs: 104 right.relocs:
107 ; CHECK: movq (%rsp), [[REGVAL2]] 105 ; CHECK: movq (%rsp), [[REGVAL2]]
108 ; CHECK: movq 106 ; CHECK: movq
109 %val2.relocated_right = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(i32 %sp2, i32 13, i32 13) 107 %val2.relocated_right = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(token %sp2, i32 13, i32 13)
110 %val3.relocated = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(i32 %sp2, i32 14, i32 14) 108 %val3.relocated = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(token %sp2, i32 14, i32 14)
111 br label %normal_return 109 br label %normal_return
112 110
113 normal_return: 111 normal_return:
114 ; CHECK-LABEL: %normal_return 112 ; CHECK-LABEL: %normal_return
115 ; CHECK: cmoveq {{.*}}[[REGVAL2]]{{.*}} 113 ; CHECK: cmoveq {{.*}}[[REGVAL2]]{{.*}}
118 %a2 = phi i64 addrspace(1)* [%val2.relocated_left, %left.relocs], [%val2.relocated_right, %right.relocs] 116 %a2 = phi i64 addrspace(1)* [%val2.relocated_left, %left.relocs], [%val2.relocated_right, %right.relocs]
119 %ret = select i1 %cond, i64 addrspace(1)* %a1, i64 addrspace(1)* %a2 117 %ret = select i1 %cond, i64 addrspace(1)* %a1, i64 addrspace(1)* %a2
120 ret i64 addrspace(1)* %ret 118 ret i64 addrspace(1)* %ret
121 119
122 exceptional_return.left: 120 exceptional_return.left:
123 %landing_pad = landingpad { i8*, i32 } 121 %landing_pad = landingpad token
124 cleanup 122 cleanup
125 %relocate_token = extractvalue { i8*, i32 } %landing_pad, 1 123 %val.relocated2 = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(token %landing_pad, i32 13, i32 13)
126 %val.relocated2 = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(i32 %relocate_token, i32 13, i32 13)
127 ret i64 addrspace(1)* %val.relocated2 124 ret i64 addrspace(1)* %val.relocated2
128 125
129 exceptional_return.right: 126 exceptional_return.right:
130 %landing_pad1 = landingpad { i8*, i32 } 127 %landing_pad1 = landingpad token
131 cleanup 128 cleanup
132 %relocate_token1 = extractvalue { i8*, i32 } %landing_pad1, 1 129 %val.relocated3 = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(token %landing_pad1, i32 13, i32 13)
133 %val.relocated3 = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(i32 %relocate_token1, i32 13, i32 13)
134 ret i64 addrspace(1)* %val.relocated3 130 ret i64 addrspace(1)* %val.relocated3
135 } 131 }
136 132
137 define i64 addrspace(1)* @test_null_undef(i64 addrspace(1)* %val1) 133 define i64 addrspace(1)* @test_null_undef(i64 addrspace(1)* %val1)
138 gc "statepoint-example" personality i32 ()* @"personality_function" { 134 gc "statepoint-example" personality i32 ()* @"personality_function" {
139 ; CHECK-LABEL: test_null_undef: 135 ; CHECK-LABEL: test_null_undef:
140 entry: 136 entry:
141 ; CHECK: callq some_call 137 ; CHECK: callq some_call
142 %sp1 = invoke i32 (i64, i32, void (i64 addrspace(1)*)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidp1i64f(i64 0, i32 0, void (i64 addrspace(1)*)* @some_call, i32 1, i32 0, i64 addrspace(1)* %val1, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0, i64 addrspace(1)* null, i64 addrspace(1)* undef) 138 %sp1 = invoke token (i64, i32, void (i64 addrspace(1)*)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidp1i64f(i64 0, i32 0, void (i64 addrspace(1)*)* @some_call, i32 1, i32 0, i64 addrspace(1)* %val1, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0, i64 addrspace(1)* null, i64 addrspace(1)* undef)
143 to label %normal_return unwind label %exceptional_return 139 to label %normal_return unwind label %exceptional_return
144 140
145 normal_return: 141 normal_return:
146 ; CHECK-LABEL: %normal_return 142 ; CHECK-LABEL: %normal_return
147 ; CHECK: xorl %eax, %eax 143 ; CHECK: xorl %eax, %eax
148 ; CHECK-NEXT: popq 144 ; CHECK-NEXT: popq
149 ; CHECK-NEXT: retq 145 ; CHECK-NEXT: retq
150 %null.relocated = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(i32 %sp1, i32 13, i32 13) 146 %null.relocated = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(token %sp1, i32 13, i32 13)
151 %undef.relocated = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(i32 %sp1, i32 14, i32 14) 147 %undef.relocated = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(token %sp1, i32 14, i32 14)
152 ret i64 addrspace(1)* %null.relocated 148 ret i64 addrspace(1)* %null.relocated
153 149
154 exceptional_return: 150 exceptional_return:
155 %landing_pad = landingpad { i8*, i32 } 151 %landing_pad = landingpad token
156 cleanup 152 cleanup
157 %relocate_token = extractvalue { i8*, i32 } %landing_pad, 1 153 %null.relocated2 = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(token %landing_pad, i32 13, i32 13)
158 %null.relocated2 = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(i32 %relocate_token, i32 13, i32 13) 154 %undef.relocated2 = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(token %landing_pad, i32 14, i32 14)
159 %undef.relocated2 = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(i32 %relocate_token, i32 14, i32 14)
160 ret i64 addrspace(1)* %null.relocated2 155 ret i64 addrspace(1)* %null.relocated2
161 } 156 }
162 157
163 define i64 addrspace(1)* @test_alloca_and_const(i64 addrspace(1)* %val1) 158 define i64 addrspace(1)* @test_alloca_and_const(i64 addrspace(1)* %val1)
164 gc "statepoint-example" personality i32 ()* @"personality_function" { 159 gc "statepoint-example" personality i32 ()* @"personality_function" {
166 entry: 161 entry:
167 %a = alloca i32 162 %a = alloca i32
168 %aa = addrspacecast i32* %a to i32 addrspace(1)* 163 %aa = addrspacecast i32* %a to i32 addrspace(1)*
169 %c = inttoptr i64 15 to i64 addrspace(1)* 164 %c = inttoptr i64 15 to i64 addrspace(1)*
170 ; CHECK: callq 165 ; CHECK: callq
171 %sp = invoke i32 (i64, i32, void (i64 addrspace(1)*)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidp1i64f(i64 0, i32 0, void (i64 addrspace(1)*)* @some_call, i32 1, i32 0, i64 addrspace(1)* %val1, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0, i32 addrspace(1)* %aa, i64 addrspace(1)* %c) 166 %sp = invoke token (i64, i32, void (i64 addrspace(1)*)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidp1i64f(i64 0, i32 0, void (i64 addrspace(1)*)* @some_call, i32 1, i32 0, i64 addrspace(1)* %val1, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0, i32 addrspace(1)* %aa, i64 addrspace(1)* %c)
172 to label %normal_return unwind label %exceptional_return 167 to label %normal_return unwind label %exceptional_return
173 168
174 normal_return: 169 normal_return:
175 ; CHECK: leaq 170 ; CHECK: leaq
176 ; CHECK-NEXT: popq 171 ; CHECK-NEXT: popq
177 ; CHECK-NEXT: retq 172 ; CHECK-NEXT: retq
178 %aa.rel = call coldcc i32 addrspace(1)* @llvm.experimental.gc.relocate.p1i32(i32 %sp, i32 13, i32 13) 173 %aa.rel = call coldcc i32 addrspace(1)* @llvm.experimental.gc.relocate.p1i32(token %sp, i32 13, i32 13)
179 %aa.converted = bitcast i32 addrspace(1)* %aa.rel to i64 addrspace(1)* 174 %aa.converted = bitcast i32 addrspace(1)* %aa.rel to i64 addrspace(1)*
180 ret i64 addrspace(1)* %aa.converted 175 ret i64 addrspace(1)* %aa.converted
181 176
182 exceptional_return: 177 exceptional_return:
183 ; CHECK: movl $15 178 ; CHECK: movl $15
184 ; CHECK-NEXT: popq 179 ; CHECK-NEXT: popq
185 ; CHECK-NEXT: retq 180 ; CHECK-NEXT: retq
186 %landing_pad = landingpad { i8*, i32 } 181 %landing_pad = landingpad token
187 cleanup 182 cleanup
188 %relocate_token = extractvalue { i8*, i32 } %landing_pad, 1 183 %aa.rel2 = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(token %landing_pad, i32 14, i32 14)
189 %aa.rel2 = call coldcc i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(i32 %relocate_token, i32 14, i32 14)
190 ret i64 addrspace(1)* %aa.rel2 184 ret i64 addrspace(1)* %aa.rel2
191 } 185 }
192 186
193 declare i32 @llvm.experimental.gc.statepoint.p0f_isVoidp1i64f(i64, i32, void (i64 addrspace(1)*)*, i32, i32, ...) 187 declare token @llvm.experimental.gc.statepoint.p0f_isVoidp1i64f(i64, i32, void (i64 addrspace(1)*)*, i32, i32, ...)
194 declare i32 @llvm.experimental.gc.statepoint.p0f_p1i64p1i64f(i64, i32, i64 addrspace(1)* (i64 addrspace(1)*)*, i32, i32, ...) 188 declare token @llvm.experimental.gc.statepoint.p0f_p1i64p1i64f(i64, i32, i64 addrspace(1)* (i64 addrspace(1)*)*, i32, i32, ...)
195 189
196 declare i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(i32, i32, i32) 190 declare i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(token, i32, i32)
197 declare i32 addrspace(1)* @llvm.experimental.gc.relocate.p1i32(i32, i32, i32) 191 declare i32 addrspace(1)* @llvm.experimental.gc.relocate.p1i32(token, i32, i32)
198 declare i64 addrspace(1)* @llvm.experimental.gc.result.p1i64(i32) 192 declare i64 addrspace(1)* @llvm.experimental.gc.result.p1i64(token)