@@ -120,59 +120,3 @@ landingpad:
120120 %out = call i32 @llvm.callbr.landingpad.i32 (i32 %0 )
121121 ret i32 %out
122122}
123-
124- declare void @llvm.amdgcn.kill (i1 )
125-
126- ; CHECK-NEXT: Callbr amdgcn_kill only supports one indirect dest
127- define void @test_callbr_intrinsic_indirect0 (i1 %c ) {
128- callbr void @llvm.amdgcn.kill (i1 %c ) to label %cont []
129- kill:
130- unreachable
131- cont:
132- ret void
133- }
134-
135- ; CHECK-NEXT: Callbr amdgcn_kill only supports one indirect dest
136- define void @test_callbr_intrinsic_indirect2 (i1 %c ) {
137- callbr void @llvm.amdgcn.kill (i1 %c ) to label %cont [label %kill1 , label %kill2 ]
138- kill1:
139- unreachable
140- kill2:
141- unreachable
142- cont:
143- ret void
144- }
145-
146- ; CHECK-NEXT: Callbr amdgcn_kill indirect dest needs to be unreachable
147- define void @test_callbr_intrinsic_no_unreachable (i1 %c ) {
148- callbr void @llvm.amdgcn.kill (i1 %c ) to label %cont [label %kill ]
149- kill:
150- ret void
151- cont:
152- ret void
153- }
154-
155- ; CHECK-NEXT: Callbr currently only supports asm-goto and selected intrinsics
156- declare i32 @llvm.amdgcn.workitem.id.x ()
157- define void @test_callbr_intrinsic_unsupported () {
158- callbr i32 @llvm.amdgcn.workitem.id.x () to label %cont []
159- cont:
160- ret void
161- }
162-
163- ; CHECK-NEXT: Callbr: indirect function / invalid signature
164- define void @test_callbr_intrinsic_wrong_signature (ptr %ptr ) {
165- %func = load ptr , ptr %ptr , align 8
166- callbr void %func () to label %cont []
167- cont:
168- ret void
169- }
170-
171- ; CHECK-NEXT: Callbr for intrinsics currently doesn't support operand bundles
172- define void @test_callbr_intrinsic_no_operand_bundles (i1 %c ) {
173- callbr void @llvm.amdgcn.kill (i1 %c ) [ "foo" (i1 %c ) ] to label %cont [label %kill ]
174- kill:
175- unreachable
176- cont:
177- ret void
178- }
0 commit comments