@@ -238,6 +238,37 @@ define void @calls_statepoint(ptr addrspace(1) %arg0, i64 %arg1, i32 %arg2, i32
238
238
ret void
239
239
}
240
240
241
+ declare void @llvm.experimental.patchpoint.void (i64 , i32 , ptr , i32 , ...)
242
+ declare i64 @llvm.experimental.patchpoint.i64 (i64 , i32 , ptr , i32 , ...)
243
+
244
+ define void @test_patchpoint (i64 %arg0 , i32 %arg1 , i32 %arg2 ) {
245
+ ; CHECK: immarg operand has non-immediate parameter
246
+ ; CHECK-NEXT: i64 %arg0
247
+ ; CHECK-NEXT: call void (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.void(i64 %arg0, i32 4, ptr null, i32 0)
248
+ ; CHECK: immarg operand has non-immediate parameter
249
+ ; CHECK-NEXT: i32 %arg1
250
+ ; CHECK-NEXT: call void (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.void(i64 0, i32 %arg1, ptr null, i32 0)
251
+ ; CHECK: immarg operand has non-immediate parameter
252
+ ; CHECK-NEXT: i32 %arg2
253
+ ; CHECK-NEXT: call void (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.void(i64 0, i32 4, ptr null, i32 %arg2)
254
+ ; CHECK: immarg operand has non-immediate parameter
255
+ ; CHECK-NEXT: i64 %arg0
256
+ ; CHECK-NEXT: %patchpoint0 = call i64 (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.i64(i64 %arg0, i32 4, ptr null, i32 0)
257
+ ; CHECK: immarg operand has non-immediate parameter
258
+ ; CHECK-NEXT: i32 %arg1
259
+ ; CHECK-NEXT: %patchpoint1 = call i64 (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.i64(i64 0, i32 %arg1, ptr null, i32 0)
260
+ ; CHECK: immarg operand has non-immediate parameter
261
+ ; CHECK-NEXT: i32 %arg2
262
+ ; CHECK-NEXT: %patchpoint2 = call i64 (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.i64(i64 0, i32 4, ptr null, i32 %arg2)
263
+ call void (i64 , i32 , ptr , i32 , ...) @llvm.experimental.patchpoint.void (i64 %arg0 , i32 4 , ptr null , i32 0 )
264
+ call void (i64 , i32 , ptr , i32 , ...) @llvm.experimental.patchpoint.void (i64 0 , i32 %arg1 , ptr null , i32 0 )
265
+ call void (i64 , i32 , ptr , i32 , ...) @llvm.experimental.patchpoint.void (i64 0 , i32 4 , ptr null , i32 %arg2 )
266
+ %patchpoint0 = call i64 (i64 , i32 , ptr , i32 , ...) @llvm.experimental.patchpoint.i64 (i64 %arg0 , i32 4 , ptr null , i32 0 )
267
+ %patchpoint1 = call i64 (i64 , i32 , ptr , i32 , ...) @llvm.experimental.patchpoint.i64 (i64 0 , i32 %arg1 , ptr null , i32 0 )
268
+ %patchpoint2 = call i64 (i64 , i32 , ptr , i32 , ...) @llvm.experimental.patchpoint.i64 (i64 0 , i32 4 , ptr null , i32 %arg2 )
269
+ ret void
270
+ }
271
+
241
272
declare void @llvm.hwasan.check.memaccess (ptr , ptr , i32 )
242
273
243
274
define void @hwasan_check_memaccess (ptr %arg0 ,ptr %arg1 , i32 %arg2 ) {
0 commit comments