Skip to content

Commit 9ea2fd2

Browse files
committed
[FunctionAttrs] Add additional tests for writeonly (NFC)
Add tests with argmem variations.
1 parent 5316d19 commit 9ea2fd2

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

llvm/test/Transforms/FunctionAttrs/writeonly.ll

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)