@@ -317,3 +317,48 @@ define void @fptr_test3(ptr %p, ptr %f) {
317317 call void %f (ptr nocapture %p ) writeonly
318318 ret void
319319}
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