22
33
44define void @atomic_inc (ptr %ptr0 , ptr addrspace (1 ) %ptr1 , ptr addrspace (3 ) %ptr3 ) {
5- ; CHECK: atomicrmw uinc_wrap ptr %ptr0, i32 42 syncscope("agent") seq_cst, align 4, !amdgpu.no.fine.grained.memory !0
5+ ; CHECK: atomicrmw uinc_wrap ptr %ptr0, i32 42 syncscope("agent") seq_cst, align 4, !noalias.addrspace !0, ! amdgpu.no.fine.grained.memory !1{{$}}
66 %result0 = call i32 @llvm.amdgcn.atomic.inc.i32.p0 (ptr %ptr0 , i32 42 , i32 0 , i32 0 , i1 false )
77
8- ; CHECK: atomicrmw uinc_wrap ptr addrspace(1) %ptr1, i32 43 syncscope("agent") seq_cst, align 4, !amdgpu.no.fine.grained.memory !0
8+ ; CHECK: atomicrmw uinc_wrap ptr addrspace(1) %ptr1, i32 43 syncscope("agent") seq_cst, align 4, !amdgpu.no.fine.grained.memory !1
99 %result1 = call i32 @llvm.amdgcn.atomic.inc.i32.p1 (ptr addrspace (1 ) %ptr1 , i32 43 , i32 0 , i32 0 , i1 false )
1010
1111 ; CHECK: atomicrmw uinc_wrap ptr addrspace(3) %ptr3, i32 46 syncscope("agent") seq_cst, align 4{{$}}
@@ -26,10 +26,10 @@ define void @atomic_inc(ptr %ptr0, ptr addrspace(1) %ptr1, ptr addrspace(3) %ptr
2626}
2727
2828define void @atomic_dec (ptr %ptr0 , ptr addrspace (1 ) %ptr1 , ptr addrspace (3 ) %ptr3 ) {
29- ; CHECK: atomicrmw udec_wrap ptr %ptr0, i32 42 syncscope("agent") seq_cst, align 4, !amdgpu.no.fine.grained.memory !0
29+ ; CHECK: atomicrmw udec_wrap ptr %ptr0, i32 42 syncscope("agent") seq_cst, align 4, !noalias.addrspace !0, ! amdgpu.no.fine.grained.memory !1{{$}}
3030 %result0 = call i32 @llvm.amdgcn.atomic.dec.i32.p0 (ptr %ptr0 , i32 42 , i32 0 , i32 0 , i1 false )
3131
32- ; CHECK: atomicrmw udec_wrap ptr addrspace(1) %ptr1, i32 43 syncscope("agent") seq_cst, align 4, !amdgpu.no.fine.grained.memory !0
32+ ; CHECK: atomicrmw udec_wrap ptr addrspace(1) %ptr1, i32 43 syncscope("agent") seq_cst, align 4, !amdgpu.no.fine.grained.memory !1
3333 %result1 = call i32 @llvm.amdgcn.atomic.dec.i32.p1 (ptr addrspace (1 ) %ptr1 , i32 43 , i32 0 , i32 0 , i1 false )
3434
3535 ; CHECK: atomicrmw udec_wrap ptr addrspace(3) %ptr3, i32 46 syncscope("agent") seq_cst, align 4{{$}}
@@ -51,49 +51,49 @@ define void @atomic_dec(ptr %ptr0, ptr addrspace(1) %ptr1, ptr addrspace(3) %ptr
5151
5252; Test some invalid ordering handling
5353define void @ordering (ptr %ptr0 , ptr addrspace (1 ) %ptr1 , ptr addrspace (3 ) %ptr3 ) {
54- ; CHECK: atomicrmw volatile uinc_wrap ptr %ptr0, i32 42 syncscope("agent") seq_cst, align 4, !amdgpu.no.fine.grained.memory !0
54+ ; CHECK: atomicrmw volatile uinc_wrap ptr %ptr0, i32 42 syncscope("agent") seq_cst, align 4, !noalias.addrspace !0, ! amdgpu.no.fine.grained.memory !1{{$}}
5555 %result0 = call i32 @llvm.amdgcn.atomic.inc.i32.p0 (ptr %ptr0 , i32 42 , i32 -1 , i32 0 , i1 true )
5656
57- ; CHECK: atomicrmw volatile uinc_wrap ptr addrspace(1) %ptr1, i32 43 syncscope("agent") seq_cst, align 4, !amdgpu.no.fine.grained.memory !0
57+ ; CHECK: atomicrmw volatile uinc_wrap ptr addrspace(1) %ptr1, i32 43 syncscope("agent") seq_cst, align 4, !amdgpu.no.fine.grained.memory !1
5858 %result1 = call i32 @llvm.amdgcn.atomic.inc.i32.p1 (ptr addrspace (1 ) %ptr1 , i32 43 , i32 0 , i32 0 , i1 true )
5959
60- ; CHECK: atomicrmw uinc_wrap ptr addrspace(1) %ptr1, i32 43 syncscope("agent") seq_cst, align 4, !amdgpu.no.fine.grained.memory !0
60+ ; CHECK: atomicrmw uinc_wrap ptr addrspace(1) %ptr1, i32 43 syncscope("agent") seq_cst, align 4, !amdgpu.no.fine.grained.memory !1
6161 %result2 = call i32 @llvm.amdgcn.atomic.inc.i32.p1 (ptr addrspace (1 ) %ptr1 , i32 43 , i32 1 , i32 0 , i1 false )
6262
63- ; CHECK: atomicrmw volatile uinc_wrap ptr addrspace(1) %ptr1, i32 43 syncscope("agent") monotonic, align 4, !amdgpu.no.fine.grained.memory !0
63+ ; CHECK: atomicrmw volatile uinc_wrap ptr addrspace(1) %ptr1, i32 43 syncscope("agent") monotonic, align 4, !amdgpu.no.fine.grained.memory !1
6464 %result3 = call i32 @llvm.amdgcn.atomic.inc.i32.p1 (ptr addrspace (1 ) %ptr1 , i32 43 , i32 2 , i32 0 , i1 true )
6565
66- ; CHECK: atomicrmw uinc_wrap ptr addrspace(1) %ptr1, i32 43 syncscope("agent") seq_cst, align 4, !amdgpu.no.fine.grained.memory !0
66+ ; CHECK: atomicrmw uinc_wrap ptr addrspace(1) %ptr1, i32 43 syncscope("agent") seq_cst, align 4, !amdgpu.no.fine.grained.memory !1
6767 %result4 = call i32 @llvm.amdgcn.atomic.inc.i32.p1 (ptr addrspace (1 ) %ptr1 , i32 43 , i32 3 , i32 0 , i1 false )
6868
69- ; CHECK: atomicrmw volatile udec_wrap ptr %ptr0, i32 42 syncscope("agent") seq_cst, align 4, !amdgpu.no.fine.grained.memory !0
69+ ; CHECK: atomicrmw volatile udec_wrap ptr %ptr0, i32 42 syncscope("agent") seq_cst, align 4, !noalias.addrspace !0, ! amdgpu.no.fine.grained.memory !1{{$}}
7070 %result5 = call i32 @llvm.amdgcn.atomic.dec.i32.p0 (ptr %ptr0 , i32 42 , i32 0 , i32 4 , i1 true )
7171
72- ; CHECK: atomicrmw udec_wrap ptr %ptr0, i32 42 syncscope("agent") seq_cst, align 4, !amdgpu.no.fine.grained.memory !0
72+ ; CHECK: atomicrmw udec_wrap ptr %ptr0, i32 42 syncscope("agent") seq_cst, align 4, !noalias.addrspace !0, ! amdgpu.no.fine.grained.memory !1{{$}}
7373 %result6 = call i32 @llvm.amdgcn.atomic.dec.i32.p0 (ptr %ptr0 , i32 42 , i32 0 , i32 5 , i1 false )
7474
75- ; CHECK: atomicrmw volatile udec_wrap ptr %ptr0, i32 42 syncscope("agent") seq_cst, align 4, !amdgpu.no.fine.grained.memory !0
75+ ; CHECK: atomicrmw volatile udec_wrap ptr %ptr0, i32 42 syncscope("agent") seq_cst, align 4, !noalias.addrspace !0, ! amdgpu.no.fine.grained.memory !1{{$}}
7676 %result7 = call i32 @llvm.amdgcn.atomic.dec.i32.p0 (ptr %ptr0 , i32 42 , i32 0 , i32 6 , i1 true )
7777
78- ; CHECK: atomicrmw udec_wrap ptr %ptr0, i32 42 syncscope("agent") seq_cst, align 4, !amdgpu.no.fine.grained.memory !0
78+ ; CHECK: atomicrmw udec_wrap ptr %ptr0, i32 42 syncscope("agent") seq_cst, align 4, !noalias.addrspace !0, ! amdgpu.no.fine.grained.memory !1{{$}}
7979 %result8 = call i32 @llvm.amdgcn.atomic.dec.i32.p0 (ptr %ptr0 , i32 42 , i32 0 , i32 7 , i1 false )
8080
81- ; CHECK:= atomicrmw volatile udec_wrap ptr %ptr0, i32 42 syncscope("agent") seq_cst, align 4, !amdgpu.no.fine.grained.memory !0
81+ ; CHECK:= atomicrmw volatile udec_wrap ptr %ptr0, i32 42 syncscope("agent") seq_cst, align 4, !noalias.addrspace !0, ! amdgpu.no.fine.grained.memory !1{{$}}
8282 %result9 = call i32 @llvm.amdgcn.atomic.dec.i32.p0 (ptr %ptr0 , i32 42 , i32 0 , i32 8 , i1 true )
8383
84- ; CHECK:= atomicrmw volatile udec_wrap ptr addrspace(1) %ptr1, i32 43 syncscope("agent") seq_cst, align 4, !amdgpu.no.fine.grained.memory !0
84+ ; CHECK:= atomicrmw volatile udec_wrap ptr addrspace(1) %ptr1, i32 43 syncscope("agent") seq_cst, align 4, !amdgpu.no.fine.grained.memory !1
8585 %result10 = call i32 @llvm.amdgcn.atomic.dec.i32.p1 (ptr addrspace (1 ) %ptr1 , i32 43 , i32 3 , i32 0 , i1 true )
8686 ret void
8787}
8888
8989define void @immarg_violations (ptr %ptr0 , i32 %val32 , i1 %val1 ) {
90- ; CHECK: atomicrmw udec_wrap ptr %ptr0, i32 42 syncscope("agent") seq_cst, align 4, !amdgpu.no.fine.grained.memory !0
90+ ; CHECK: atomicrmw udec_wrap ptr %ptr0, i32 42 syncscope("agent") seq_cst, align 4, !noalias.addrspace !0, ! amdgpu.no.fine.grained.memory !1{{$}}
9191 %result0 = call i32 @llvm.amdgcn.atomic.dec.i32.p0 (ptr %ptr0 , i32 42 , i32 %val32 , i32 0 , i1 false )
9292
93- ; CHECK: atomicrmw udec_wrap ptr %ptr0, i32 42 syncscope("agent") monotonic, align 4, !amdgpu.no.fine.grained.memory !0
93+ ; CHECK: atomicrmw udec_wrap ptr %ptr0, i32 42 syncscope("agent") monotonic, align 4, !noalias.addrspace !0, ! amdgpu.no.fine.grained.memory !1{{$}}
9494 %result1 = call i32 @llvm.amdgcn.atomic.dec.i32.p0 (ptr %ptr0 , i32 42 , i32 2 , i32 %val32 , i1 false )
9595
96- ; CHECK: atomicrmw volatile udec_wrap ptr %ptr0, i32 42 syncscope("agent") monotonic, align 4, !amdgpu.no.fine.grained.memory !0
96+ ; CHECK: atomicrmw volatile udec_wrap ptr %ptr0, i32 42 syncscope("agent") monotonic, align 4, !noalias.addrspace !0, ! amdgpu.no.fine.grained.memory !1{{$}}
9797 %result2 = call i32 @llvm.amdgcn.atomic.dec.i32.p0 (ptr %ptr0 , i32 42 , i32 2 , i32 0 , i1 %val1 )
9898 ret void
9999}
@@ -300,4 +300,7 @@ define float @upgrade_amdgcn_ds_fmax_f32_no_suffix(ptr addrspace(3) %ptr, float
300300 ret float %result0
301301}
302302
303+ ; CHECK: !0 = !{i32 5, i32 6}
304+ ; CHECK: !1 = !{}
305+
303306attributes #0 = { argmemonly nounwind willreturn }
0 commit comments