@@ -317,3 +317,48 @@ define void @fptr_test3(ptr %p, ptr %f) {
317
317
call void %f (ptr nocapture %p ) writeonly
318
318
ret void
319
319
}
320
+
321
+ define void @test_argmem_none_callee (ptr %p ) {
322
+ ; FNATTRS-LABEL: define {{[^@]+}}@test_argmem_none_callee
323
+ ; FNATTRS-SAME: (ptr nocapture [[P:%.*]]) {
324
+ ; FNATTRS-NEXT: call void @direct1_callee(ptr nocapture [[P]]) #[[ATTR9:[0-9]+]]
325
+ ; FNATTRS-NEXT: ret void
326
+ ;
327
+ ; ATTRIBUTOR-LABEL: define {{[^@]+}}@test_argmem_none_callee
328
+ ; ATTRIBUTOR-SAME: (ptr nocapture [[P:%.*]]) {
329
+ ; ATTRIBUTOR-NEXT: call void @direct1_callee(ptr nocapture [[P]]) #[[ATTR8:[0-9]+]]
330
+ ; ATTRIBUTOR-NEXT: ret void
331
+ ;
332
+ call void @direct1_callee (ptr nocapture %p ) memory(readwrite, argmem: none)
333
+ ret void
334
+ }
335
+
336
+ define void @test_argmem_read_callee (ptr %p ) {
337
+ ; FNATTRS-LABEL: define {{[^@]+}}@test_argmem_read_callee
338
+ ; FNATTRS-SAME: (ptr nocapture [[P:%.*]]) {
339
+ ; FNATTRS-NEXT: call void @direct1_callee(ptr nocapture [[P]]) #[[ATTR10:[0-9]+]]
340
+ ; FNATTRS-NEXT: ret void
341
+ ;
342
+ ; ATTRIBUTOR-LABEL: define {{[^@]+}}@test_argmem_read_callee
343
+ ; ATTRIBUTOR-SAME: (ptr nocapture [[P:%.*]]) {
344
+ ; ATTRIBUTOR-NEXT: call void @direct1_callee(ptr nocapture [[P]]) #[[ATTR9:[0-9]+]]
345
+ ; ATTRIBUTOR-NEXT: ret void
346
+ ;
347
+ call void @direct1_callee (ptr nocapture %p ) memory(readwrite, argmem: read)
348
+ ret void
349
+ }
350
+
351
+ define void @test_argmem_write_callee (ptr %p ) {
352
+ ; FNATTRS-LABEL: define {{[^@]+}}@test_argmem_write_callee
353
+ ; FNATTRS-SAME: (ptr nocapture [[P:%.*]]) {
354
+ ; FNATTRS-NEXT: call void @direct1_callee(ptr nocapture [[P]]) #[[ATTR11:[0-9]+]]
355
+ ; FNATTRS-NEXT: ret void
356
+ ;
357
+ ; ATTRIBUTOR-LABEL: define {{[^@]+}}@test_argmem_write_callee
358
+ ; ATTRIBUTOR-SAME: (ptr nocapture [[P:%.*]]) {
359
+ ; ATTRIBUTOR-NEXT: call void @direct1_callee(ptr nocapture [[P]]) #[[ATTR10:[0-9]+]]
360
+ ; ATTRIBUTOR-NEXT: ret void
361
+ ;
362
+ call void @direct1_callee (ptr nocapture %p ) memory(readwrite, argmem: write)
363
+ ret void
364
+ }
0 commit comments