@@ -663,90 +663,3 @@ define void @memset_large_offset_nonzero_size(ptr %dst) {
663663 call void @llvm.memset.p0.i64 (ptr %offset , i8 0 , i64 3 , i1 false )
664664 ret void
665665}
666-
667-
668- ; Check Target Memory Location keeps the attributes correct with volatile
669-
670- define void @mem_target_f1 (ptr %p ){
671- ; CHECK-LABEL: define void @mem_target_f1(
672- ; CHECK-SAME: ptr readnone captures(address) [[P:%.*]]) {
673- ; CHECK-NEXT: call void @target0_no_read_write(ptr [[P]])
674- ; CHECK-NEXT: store volatile i32 0, ptr undef, align 4
675- ; CHECK-NEXT: ret void
676- ;
677- call void @target0_no_read_write (ptr %p )
678- store volatile i32 0 , ptr undef , align 4
679- ret void
680- }
681-
682- define void @mem_target_f2 (ptr %p ){
683- ; CHECK-LABEL: define void @mem_target_f2(
684- ; CHECK-SAME: ptr [[P:%.*]]) {
685- ; CHECK-NEXT: call void @targets_read_write(ptr [[P]])
686- ; CHECK-NEXT: store volatile i32 0, ptr undef, align 4
687- ; CHECK-NEXT: ret void
688- ;
689- call void @targets_read_write (ptr %p )
690- store volatile i32 0 , ptr undef , align 4
691- ret void
692- }
693-
694- define void @mem_target_f3 (ptr %p ){
695- ; CHECK: Function Attrs: memory(readwrite)
696- ; CHECK-LABEL: define void @mem_target_f3(
697- ; CHECK-SAME: ptr [[P:%.*]]) #[[ATTR7:[0-9]+]] {
698- ; CHECK-NEXT: call void @target_read_or_write(ptr [[P]])
699- ; CHECK-NEXT: store volatile i32 0, ptr undef, align 4
700- ; CHECK-NEXT: ret void
701- ;
702- call void @target_read_or_write (ptr %p )
703- store volatile i32 0 , ptr undef , align 4
704- ret void
705- }
706-
707-
708- ; Without volatile
709-
710- ; Check Target Memory Location keeps the attributes correct with volatile
711- define void @mem_target_f4 (ptr %p ){
712- ; CHECK: Function Attrs: memory(write, inaccessiblemem: none)
713- ; CHECK-LABEL: define void @mem_target_f4(
714- ; CHECK-SAME: ptr readnone captures(address) [[P:%.*]]) #[[ATTR8:[0-9]+]] {
715- ; CHECK-NEXT: call void @target0_no_read_write(ptr [[P]])
716- ; CHECK-NEXT: store i32 0, ptr undef, align 4
717- ; CHECK-NEXT: ret void
718- ;
719- call void @target0_no_read_write (ptr %p )
720- store i32 0 , ptr undef , align 4
721- ret void
722- }
723-
724- define void @mem_target_f5 (ptr %p ){
725- ; CHECK: Function Attrs: memory(write, inaccessiblemem: none, target_mem0: readwrite, target_mem1: readwrite)
726- ; CHECK-LABEL: define void @mem_target_f5(
727- ; CHECK-SAME: ptr [[P:%.*]]) #[[ATTR9:[0-9]+]] {
728- ; CHECK-NEXT: call void @targets_read_write(ptr [[P]])
729- ; CHECK-NEXT: store i32 0, ptr undef, align 4
730- ; CHECK-NEXT: ret void
731- ;
732- call void @targets_read_write (ptr %p )
733- store i32 0 , ptr undef , align 4
734- ret void
735- }
736-
737- define void @mem_target_f6 (ptr %p ){
738- ; CHECK: Function Attrs: memory(write, inaccessiblemem: none, target_mem1: readwrite)
739- ; CHECK-LABEL: define void @mem_target_f6(
740- ; CHECK-SAME: ptr [[P:%.*]]) #[[ATTR10:[0-9]+]] {
741- ; CHECK-NEXT: call void @target_read_or_write(ptr [[P]])
742- ; CHECK-NEXT: store i32 0, ptr undef, align 4
743- ; CHECK-NEXT: ret void
744- ;
745- call void @target_read_or_write (ptr %p )
746- store i32 0 , ptr undef , align 4
747- ret void
748- }
749-
750- declare void @target0_no_read_write (ptr ) memory(target_mem0: none, target_mem1: none);
751- declare void @targets_read_write (ptr %p )memory(target_mem0: readwrite, target_mem1: readwrite);
752- declare void @target_read_or_write (ptr ) memory(target_mem0: none, target_mem1: readwrite);
0 commit comments