Lines Matching refs:CU
4 …sa -mcpu=gfx1010 -mattr=+cumode -verify-machineinstrs < %s | FileCheck --check-prefixes=GFX10-CU %s
11 …sa -mcpu=gfx1100 -mattr=+cumode -verify-machineinstrs < %s | FileCheck --check-prefixes=GFX11-CU %s
40 ; GFX10-CU-LABEL: flat_agent_unordered_load:
41 ; GFX10-CU: ; %bb.0: ; %entry
42 ; GFX10-CU-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
43 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
44 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
45 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
46 ; GFX10-CU-NEXT: flat_load_dword v2, v[0:1]
47 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s2
48 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s3
49 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
50 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
51 ; GFX10-CU-NEXT: s_endpgm
130 ; GFX11-CU-LABEL: flat_agent_unordered_load:
131 ; GFX11-CU: ; %bb.0: ; %entry
132 ; GFX11-CU-NEXT: s_load_b128 s[0:3], s[0:1], 0x0
133 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
134 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
135 ; GFX11-CU-NEXT: flat_load_b32 v2, v[0:1]
136 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
137 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
138 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
139 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
140 ; GFX11-CU-NEXT: s_endpgm
175 ; GFX10-CU-LABEL: flat_agent_monotonic_load:
176 ; GFX10-CU: ; %bb.0: ; %entry
177 ; GFX10-CU-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
178 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
179 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
180 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
181 ; GFX10-CU-NEXT: flat_load_dword v2, v[0:1] glc dlc
182 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s2
183 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s3
184 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
185 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
186 ; GFX10-CU-NEXT: s_endpgm
265 ; GFX11-CU-LABEL: flat_agent_monotonic_load:
266 ; GFX11-CU: ; %bb.0: ; %entry
267 ; GFX11-CU-NEXT: s_load_b128 s[0:3], s[0:1], 0x0
268 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
269 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
270 ; GFX11-CU-NEXT: flat_load_b32 v2, v[0:1] glc
271 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
272 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
273 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
274 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
275 ; GFX11-CU-NEXT: s_endpgm
313 ; GFX10-CU-LABEL: flat_agent_acquire_load:
314 ; GFX10-CU: ; %bb.0: ; %entry
315 ; GFX10-CU-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
316 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
317 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
318 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
319 ; GFX10-CU-NEXT: flat_load_dword v2, v[0:1] glc dlc
320 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
321 ; GFX10-CU-NEXT: buffer_gl0_inv
322 ; GFX10-CU-NEXT: buffer_gl1_inv
323 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s2
324 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s3
325 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
326 ; GFX10-CU-NEXT: s_endpgm
411 ; GFX11-CU-LABEL: flat_agent_acquire_load:
412 ; GFX11-CU: ; %bb.0: ; %entry
413 ; GFX11-CU-NEXT: s_load_b128 s[0:3], s[0:1], 0x0
414 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
415 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
416 ; GFX11-CU-NEXT: flat_load_b32 v2, v[0:1] glc
417 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
418 ; GFX11-CU-NEXT: buffer_gl0_inv
419 ; GFX11-CU-NEXT: buffer_gl1_inv
420 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
421 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
422 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
423 ; GFX11-CU-NEXT: s_endpgm
464 ; GFX10-CU-LABEL: flat_agent_seq_cst_load:
465 ; GFX10-CU: ; %bb.0: ; %entry
466 ; GFX10-CU-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
467 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
468 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
469 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
470 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
471 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
472 ; GFX10-CU-NEXT: flat_load_dword v2, v[0:1] glc dlc
473 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
474 ; GFX10-CU-NEXT: buffer_gl0_inv
475 ; GFX10-CU-NEXT: buffer_gl1_inv
476 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s2
477 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s3
478 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
479 ; GFX10-CU-NEXT: s_endpgm
571 ; GFX11-CU-LABEL: flat_agent_seq_cst_load:
572 ; GFX11-CU: ; %bb.0: ; %entry
573 ; GFX11-CU-NEXT: s_load_b128 s[0:3], s[0:1], 0x0
574 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
575 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
576 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
577 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
578 ; GFX11-CU-NEXT: flat_load_b32 v2, v[0:1] glc
579 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
580 ; GFX11-CU-NEXT: buffer_gl0_inv
581 ; GFX11-CU-NEXT: buffer_gl1_inv
582 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
583 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
584 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
585 ; GFX11-CU-NEXT: s_endpgm
617 ; GFX10-CU-LABEL: flat_agent_unordered_store:
618 ; GFX10-CU: ; %bb.0: ; %entry
619 ; GFX10-CU-NEXT: s_clause 0x1
620 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
621 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x0
622 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
623 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
624 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
625 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
626 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
627 ; GFX10-CU-NEXT: s_endpgm
692 ; GFX11-CU-LABEL: flat_agent_unordered_store:
693 ; GFX11-CU: ; %bb.0: ; %entry
694 ; GFX11-CU-NEXT: s_clause 0x1
695 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
696 ; GFX11-CU-NEXT: s_load_b32 s0, s[0:1], 0x0
697 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
698 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
699 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, s0
700 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
701 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
702 ; GFX11-CU-NEXT: s_endpgm
733 ; GFX10-CU-LABEL: flat_agent_monotonic_store:
734 ; GFX10-CU: ; %bb.0: ; %entry
735 ; GFX10-CU-NEXT: s_clause 0x1
736 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
737 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x0
738 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
739 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
740 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
741 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
742 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
743 ; GFX10-CU-NEXT: s_endpgm
808 ; GFX11-CU-LABEL: flat_agent_monotonic_store:
809 ; GFX11-CU: ; %bb.0: ; %entry
810 ; GFX11-CU-NEXT: s_clause 0x1
811 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
812 ; GFX11-CU-NEXT: s_load_b32 s0, s[0:1], 0x0
813 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
814 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
815 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, s0
816 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
817 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
818 ; GFX11-CU-NEXT: s_endpgm
852 ; GFX10-CU-LABEL: flat_agent_release_store:
853 ; GFX10-CU: ; %bb.0: ; %entry
854 ; GFX10-CU-NEXT: s_clause 0x1
855 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
856 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x0
857 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
858 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
859 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
860 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
861 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
862 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
863 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
864 ; GFX10-CU-NEXT: s_endpgm
938 ; GFX11-CU-LABEL: flat_agent_release_store:
939 ; GFX11-CU: ; %bb.0: ; %entry
940 ; GFX11-CU-NEXT: s_clause 0x1
941 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
942 ; GFX11-CU-NEXT: s_load_b32 s0, s[0:1], 0x0
943 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
944 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
945 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, s0
946 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
947 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
948 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
949 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
950 ; GFX11-CU-NEXT: s_endpgm
984 ; GFX10-CU-LABEL: flat_agent_seq_cst_store:
985 ; GFX10-CU: ; %bb.0: ; %entry
986 ; GFX10-CU-NEXT: s_clause 0x1
987 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
988 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x0
989 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
990 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
991 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
992 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
993 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
994 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
995 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
996 ; GFX10-CU-NEXT: s_endpgm
1070 ; GFX11-CU-LABEL: flat_agent_seq_cst_store:
1071 ; GFX11-CU: ; %bb.0: ; %entry
1072 ; GFX11-CU-NEXT: s_clause 0x1
1073 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
1074 ; GFX11-CU-NEXT: s_load_b32 s0, s[0:1], 0x0
1075 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
1076 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
1077 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, s0
1078 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1079 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
1080 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
1081 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
1082 ; GFX11-CU-NEXT: s_endpgm
1113 ; GFX10-CU-LABEL: flat_agent_monotonic_atomicrmw:
1114 ; GFX10-CU: ; %bb.0: ; %entry
1115 ; GFX10-CU-NEXT: s_clause 0x1
1116 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1117 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
1118 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
1119 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
1120 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
1121 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
1122 ; GFX10-CU-NEXT: flat_atomic_swap v[0:1], v2
1123 ; GFX10-CU-NEXT: s_endpgm
1188 ; GFX11-CU-LABEL: flat_agent_monotonic_atomicrmw:
1189 ; GFX11-CU: ; %bb.0: ; %entry
1190 ; GFX11-CU-NEXT: s_clause 0x1
1191 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
1192 ; GFX11-CU-NEXT: s_load_b32 s0, s[0:1], 0x8
1193 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
1194 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
1195 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, s0
1196 ; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
1197 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
1198 ; GFX11-CU-NEXT: s_endpgm
1235 ; GFX10-CU-LABEL: flat_agent_acquire_atomicrmw:
1236 ; GFX10-CU: ; %bb.0: ; %entry
1237 ; GFX10-CU-NEXT: s_clause 0x1
1238 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1239 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
1240 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
1241 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
1242 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
1243 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
1244 ; GFX10-CU-NEXT: flat_atomic_swap v[0:1], v2
1245 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
1246 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
1247 ; GFX10-CU-NEXT: buffer_gl0_inv
1248 ; GFX10-CU-NEXT: buffer_gl1_inv
1249 ; GFX10-CU-NEXT: s_endpgm
1326 ; GFX11-CU-LABEL: flat_agent_acquire_atomicrmw:
1327 ; GFX11-CU: ; %bb.0: ; %entry
1328 ; GFX11-CU-NEXT: s_clause 0x1
1329 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
1330 ; GFX11-CU-NEXT: s_load_b32 s0, s[0:1], 0x8
1331 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
1332 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
1333 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, s0
1334 ; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
1335 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
1336 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
1337 ; GFX11-CU-NEXT: buffer_gl0_inv
1338 ; GFX11-CU-NEXT: buffer_gl1_inv
1339 ; GFX11-CU-NEXT: s_endpgm
1373 ; GFX10-CU-LABEL: flat_agent_release_atomicrmw:
1374 ; GFX10-CU: ; %bb.0: ; %entry
1375 ; GFX10-CU-NEXT: s_clause 0x1
1376 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1377 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
1378 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
1379 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
1380 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
1381 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
1382 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1383 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
1384 ; GFX10-CU-NEXT: flat_atomic_swap v[0:1], v2
1385 ; GFX10-CU-NEXT: s_endpgm
1459 ; GFX11-CU-LABEL: flat_agent_release_atomicrmw:
1460 ; GFX11-CU: ; %bb.0: ; %entry
1461 ; GFX11-CU-NEXT: s_clause 0x1
1462 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
1463 ; GFX11-CU-NEXT: s_load_b32 s0, s[0:1], 0x8
1464 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
1465 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
1466 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, s0
1467 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1468 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
1469 ; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
1470 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
1471 ; GFX11-CU-NEXT: s_endpgm
1511 ; GFX10-CU-LABEL: flat_agent_acq_rel_atomicrmw:
1512 ; GFX10-CU: ; %bb.0: ; %entry
1513 ; GFX10-CU-NEXT: s_clause 0x1
1514 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1515 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
1516 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
1517 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
1518 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
1519 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
1520 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1521 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
1522 ; GFX10-CU-NEXT: flat_atomic_swap v[0:1], v2
1523 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
1524 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
1525 ; GFX10-CU-NEXT: buffer_gl0_inv
1526 ; GFX10-CU-NEXT: buffer_gl1_inv
1527 ; GFX10-CU-NEXT: s_endpgm
1613 ; GFX11-CU-LABEL: flat_agent_acq_rel_atomicrmw:
1614 ; GFX11-CU: ; %bb.0: ; %entry
1615 ; GFX11-CU-NEXT: s_clause 0x1
1616 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
1617 ; GFX11-CU-NEXT: s_load_b32 s0, s[0:1], 0x8
1618 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
1619 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
1620 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, s0
1621 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1622 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
1623 ; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
1624 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
1625 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
1626 ; GFX11-CU-NEXT: buffer_gl0_inv
1627 ; GFX11-CU-NEXT: buffer_gl1_inv
1628 ; GFX11-CU-NEXT: s_endpgm
1668 ; GFX10-CU-LABEL: flat_agent_seq_cst_atomicrmw:
1669 ; GFX10-CU: ; %bb.0: ; %entry
1670 ; GFX10-CU-NEXT: s_clause 0x1
1671 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1672 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
1673 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
1674 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
1675 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
1676 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
1677 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1678 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
1679 ; GFX10-CU-NEXT: flat_atomic_swap v[0:1], v2
1680 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
1681 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
1682 ; GFX10-CU-NEXT: buffer_gl0_inv
1683 ; GFX10-CU-NEXT: buffer_gl1_inv
1684 ; GFX10-CU-NEXT: s_endpgm
1770 ; GFX11-CU-LABEL: flat_agent_seq_cst_atomicrmw:
1771 ; GFX11-CU: ; %bb.0: ; %entry
1772 ; GFX11-CU-NEXT: s_clause 0x1
1773 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
1774 ; GFX11-CU-NEXT: s_load_b32 s0, s[0:1], 0x8
1775 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
1776 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
1777 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, s0
1778 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1779 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
1780 ; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
1781 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
1782 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
1783 ; GFX11-CU-NEXT: buffer_gl0_inv
1784 ; GFX11-CU-NEXT: buffer_gl1_inv
1785 ; GFX11-CU-NEXT: s_endpgm
1823 ; GFX10-CU-LABEL: flat_agent_acquire_ret_atomicrmw:
1824 ; GFX10-CU: ; %bb.0: ; %entry
1825 ; GFX10-CU-NEXT: s_clause 0x1
1826 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1827 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
1828 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
1829 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
1830 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
1831 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
1832 ; GFX10-CU-NEXT: flat_atomic_swap v2, v[0:1], v2 glc
1833 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1834 ; GFX10-CU-NEXT: buffer_gl0_inv
1835 ; GFX10-CU-NEXT: buffer_gl1_inv
1836 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
1837 ; GFX10-CU-NEXT: s_endpgm
1920 ; GFX11-CU-LABEL: flat_agent_acquire_ret_atomicrmw:
1921 ; GFX11-CU: ; %bb.0: ; %entry
1922 ; GFX11-CU-NEXT: s_clause 0x1
1923 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
1924 ; GFX11-CU-NEXT: s_load_b32 s0, s[0:1], 0x8
1925 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
1926 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
1927 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, s0
1928 ; GFX11-CU-NEXT: flat_atomic_swap_b32 v2, v[0:1], v2 glc
1929 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1930 ; GFX11-CU-NEXT: buffer_gl0_inv
1931 ; GFX11-CU-NEXT: buffer_gl1_inv
1932 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
1933 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
1934 ; GFX11-CU-NEXT: s_endpgm
1976 ; GFX10-CU-LABEL: flat_agent_acq_rel_ret_atomicrmw:
1977 ; GFX10-CU: ; %bb.0: ; %entry
1978 ; GFX10-CU-NEXT: s_clause 0x1
1979 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1980 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
1981 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
1982 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
1983 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
1984 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
1985 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1986 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
1987 ; GFX10-CU-NEXT: flat_atomic_swap v2, v[0:1], v2 glc
1988 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1989 ; GFX10-CU-NEXT: buffer_gl0_inv
1990 ; GFX10-CU-NEXT: buffer_gl1_inv
1991 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
1992 ; GFX10-CU-NEXT: s_endpgm
2084 ; GFX11-CU-LABEL: flat_agent_acq_rel_ret_atomicrmw:
2085 ; GFX11-CU: ; %bb.0: ; %entry
2086 ; GFX11-CU-NEXT: s_clause 0x1
2087 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
2088 ; GFX11-CU-NEXT: s_load_b32 s0, s[0:1], 0x8
2089 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
2090 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
2091 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, s0
2092 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2093 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
2094 ; GFX11-CU-NEXT: flat_atomic_swap_b32 v2, v[0:1], v2 glc
2095 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2096 ; GFX11-CU-NEXT: buffer_gl0_inv
2097 ; GFX11-CU-NEXT: buffer_gl1_inv
2098 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
2099 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
2100 ; GFX11-CU-NEXT: s_endpgm
2142 ; GFX10-CU-LABEL: flat_agent_seq_cst_ret_atomicrmw:
2143 ; GFX10-CU: ; %bb.0: ; %entry
2144 ; GFX10-CU-NEXT: s_clause 0x1
2145 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
2146 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
2147 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
2148 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
2149 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
2150 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
2151 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2152 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
2153 ; GFX10-CU-NEXT: flat_atomic_swap v2, v[0:1], v2 glc
2154 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2155 ; GFX10-CU-NEXT: buffer_gl0_inv
2156 ; GFX10-CU-NEXT: buffer_gl1_inv
2157 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
2158 ; GFX10-CU-NEXT: s_endpgm
2250 ; GFX11-CU-LABEL: flat_agent_seq_cst_ret_atomicrmw:
2251 ; GFX11-CU: ; %bb.0: ; %entry
2252 ; GFX11-CU-NEXT: s_clause 0x1
2253 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
2254 ; GFX11-CU-NEXT: s_load_b32 s0, s[0:1], 0x8
2255 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
2256 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
2257 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, s0
2258 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2259 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
2260 ; GFX11-CU-NEXT: flat_atomic_swap_b32 v2, v[0:1], v2 glc
2261 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2262 ; GFX11-CU-NEXT: buffer_gl0_inv
2263 ; GFX11-CU-NEXT: buffer_gl1_inv
2264 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
2265 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
2266 ; GFX11-CU-NEXT: s_endpgm
2304 ; GFX10-CU-LABEL: flat_agent_monotonic_monotonic_cmpxchg:
2305 ; GFX10-CU: ; %bb.0: ; %entry
2306 ; GFX10-CU-NEXT: s_clause 0x1
2307 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
2308 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
2309 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
2310 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
2311 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
2312 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
2313 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
2314 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
2315 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
2316 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
2317 ; GFX10-CU-NEXT: s_endpgm
2385 ; GFX11-CU-LABEL: flat_agent_monotonic_monotonic_cmpxchg:
2386 ; GFX11-CU: ; %bb.0: ; %entry
2387 ; GFX11-CU-NEXT: s_clause 0x1
2388 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
2389 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
2390 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
2391 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
2392 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
2393 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
2394 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
2395 ; GFX11-CU-NEXT: s_endpgm
2439 ; GFX10-CU-LABEL: flat_agent_acquire_monotonic_cmpxchg:
2440 ; GFX10-CU: ; %bb.0: ; %entry
2441 ; GFX10-CU-NEXT: s_clause 0x1
2442 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
2443 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
2444 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
2445 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
2446 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
2447 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
2448 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
2449 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
2450 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
2451 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
2452 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
2453 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
2454 ; GFX10-CU-NEXT: buffer_gl0_inv
2455 ; GFX10-CU-NEXT: buffer_gl1_inv
2456 ; GFX10-CU-NEXT: s_endpgm
2536 ; GFX11-CU-LABEL: flat_agent_acquire_monotonic_cmpxchg:
2537 ; GFX11-CU: ; %bb.0: ; %entry
2538 ; GFX11-CU-NEXT: s_clause 0x1
2539 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
2540 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
2541 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
2542 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
2543 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
2544 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
2545 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
2546 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
2547 ; GFX11-CU-NEXT: buffer_gl0_inv
2548 ; GFX11-CU-NEXT: buffer_gl1_inv
2549 ; GFX11-CU-NEXT: s_endpgm
2590 ; GFX10-CU-LABEL: flat_agent_release_monotonic_cmpxchg:
2591 ; GFX10-CU: ; %bb.0: ; %entry
2592 ; GFX10-CU-NEXT: s_clause 0x1
2593 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
2594 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
2595 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
2596 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
2597 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
2598 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
2599 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
2600 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
2601 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
2602 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2603 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
2604 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
2605 ; GFX10-CU-NEXT: s_endpgm
2682 ; GFX11-CU-LABEL: flat_agent_release_monotonic_cmpxchg:
2683 ; GFX11-CU: ; %bb.0: ; %entry
2684 ; GFX11-CU-NEXT: s_clause 0x1
2685 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
2686 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
2687 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
2688 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
2689 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
2690 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2691 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
2692 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
2693 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
2694 ; GFX11-CU-NEXT: s_endpgm
2741 ; GFX10-CU-LABEL: flat_agent_acq_rel_monotonic_cmpxchg:
2742 ; GFX10-CU: ; %bb.0: ; %entry
2743 ; GFX10-CU-NEXT: s_clause 0x1
2744 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
2745 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
2746 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
2747 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
2748 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
2749 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
2750 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
2751 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
2752 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
2753 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2754 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
2755 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
2756 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
2757 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
2758 ; GFX10-CU-NEXT: buffer_gl0_inv
2759 ; GFX10-CU-NEXT: buffer_gl1_inv
2760 ; GFX10-CU-NEXT: s_endpgm
2849 ; GFX11-CU-LABEL: flat_agent_acq_rel_monotonic_cmpxchg:
2850 ; GFX11-CU: ; %bb.0: ; %entry
2851 ; GFX11-CU-NEXT: s_clause 0x1
2852 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
2853 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
2854 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
2855 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
2856 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
2857 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2858 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
2859 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
2860 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
2861 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
2862 ; GFX11-CU-NEXT: buffer_gl0_inv
2863 ; GFX11-CU-NEXT: buffer_gl1_inv
2864 ; GFX11-CU-NEXT: s_endpgm
2911 ; GFX10-CU-LABEL: flat_agent_seq_cst_monotonic_cmpxchg:
2912 ; GFX10-CU: ; %bb.0: ; %entry
2913 ; GFX10-CU-NEXT: s_clause 0x1
2914 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
2915 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
2916 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
2917 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
2918 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
2919 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
2920 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
2921 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
2922 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
2923 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2924 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
2925 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
2926 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
2927 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
2928 ; GFX10-CU-NEXT: buffer_gl0_inv
2929 ; GFX10-CU-NEXT: buffer_gl1_inv
2930 ; GFX10-CU-NEXT: s_endpgm
3019 ; GFX11-CU-LABEL: flat_agent_seq_cst_monotonic_cmpxchg:
3020 ; GFX11-CU: ; %bb.0: ; %entry
3021 ; GFX11-CU-NEXT: s_clause 0x1
3022 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
3023 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
3024 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
3025 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
3026 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
3027 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
3028 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
3029 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
3030 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
3031 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
3032 ; GFX11-CU-NEXT: buffer_gl0_inv
3033 ; GFX11-CU-NEXT: buffer_gl1_inv
3034 ; GFX11-CU-NEXT: s_endpgm
3078 ; GFX10-CU-LABEL: flat_agent_monotonic_acquire_cmpxchg:
3079 ; GFX10-CU: ; %bb.0: ; %entry
3080 ; GFX10-CU-NEXT: s_clause 0x1
3081 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
3082 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
3083 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
3084 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
3085 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
3086 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
3087 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
3088 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
3089 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
3090 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
3091 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
3092 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
3093 ; GFX10-CU-NEXT: buffer_gl0_inv
3094 ; GFX10-CU-NEXT: buffer_gl1_inv
3095 ; GFX10-CU-NEXT: s_endpgm
3175 ; GFX11-CU-LABEL: flat_agent_monotonic_acquire_cmpxchg:
3176 ; GFX11-CU: ; %bb.0: ; %entry
3177 ; GFX11-CU-NEXT: s_clause 0x1
3178 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
3179 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
3180 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
3181 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
3182 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
3183 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
3184 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
3185 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
3186 ; GFX11-CU-NEXT: buffer_gl0_inv
3187 ; GFX11-CU-NEXT: buffer_gl1_inv
3188 ; GFX11-CU-NEXT: s_endpgm
3232 ; GFX10-CU-LABEL: flat_agent_acquire_acquire_cmpxchg:
3233 ; GFX10-CU: ; %bb.0: ; %entry
3234 ; GFX10-CU-NEXT: s_clause 0x1
3235 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
3236 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
3237 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
3238 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
3239 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
3240 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
3241 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
3242 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
3243 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
3244 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
3245 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
3246 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
3247 ; GFX10-CU-NEXT: buffer_gl0_inv
3248 ; GFX10-CU-NEXT: buffer_gl1_inv
3249 ; GFX10-CU-NEXT: s_endpgm
3329 ; GFX11-CU-LABEL: flat_agent_acquire_acquire_cmpxchg:
3330 ; GFX11-CU: ; %bb.0: ; %entry
3331 ; GFX11-CU-NEXT: s_clause 0x1
3332 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
3333 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
3334 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
3335 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
3336 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
3337 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
3338 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
3339 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
3340 ; GFX11-CU-NEXT: buffer_gl0_inv
3341 ; GFX11-CU-NEXT: buffer_gl1_inv
3342 ; GFX11-CU-NEXT: s_endpgm
3389 ; GFX10-CU-LABEL: flat_agent_release_acquire_cmpxchg:
3390 ; GFX10-CU: ; %bb.0: ; %entry
3391 ; GFX10-CU-NEXT: s_clause 0x1
3392 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
3393 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
3394 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
3395 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
3396 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
3397 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
3398 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
3399 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
3400 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
3401 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
3402 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
3403 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
3404 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
3405 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
3406 ; GFX10-CU-NEXT: buffer_gl0_inv
3407 ; GFX10-CU-NEXT: buffer_gl1_inv
3408 ; GFX10-CU-NEXT: s_endpgm
3497 ; GFX11-CU-LABEL: flat_agent_release_acquire_cmpxchg:
3498 ; GFX11-CU: ; %bb.0: ; %entry
3499 ; GFX11-CU-NEXT: s_clause 0x1
3500 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
3501 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
3502 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
3503 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
3504 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
3505 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
3506 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
3507 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
3508 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
3509 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
3510 ; GFX11-CU-NEXT: buffer_gl0_inv
3511 ; GFX11-CU-NEXT: buffer_gl1_inv
3512 ; GFX11-CU-NEXT: s_endpgm
3559 ; GFX10-CU-LABEL: flat_agent_acq_rel_acquire_cmpxchg:
3560 ; GFX10-CU: ; %bb.0: ; %entry
3561 ; GFX10-CU-NEXT: s_clause 0x1
3562 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
3563 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
3564 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
3565 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
3566 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
3567 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
3568 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
3569 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
3570 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
3571 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
3572 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
3573 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
3574 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
3575 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
3576 ; GFX10-CU-NEXT: buffer_gl0_inv
3577 ; GFX10-CU-NEXT: buffer_gl1_inv
3578 ; GFX10-CU-NEXT: s_endpgm
3667 ; GFX11-CU-LABEL: flat_agent_acq_rel_acquire_cmpxchg:
3668 ; GFX11-CU: ; %bb.0: ; %entry
3669 ; GFX11-CU-NEXT: s_clause 0x1
3670 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
3671 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
3672 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
3673 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
3674 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
3675 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
3676 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
3677 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
3678 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
3679 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
3680 ; GFX11-CU-NEXT: buffer_gl0_inv
3681 ; GFX11-CU-NEXT: buffer_gl1_inv
3682 ; GFX11-CU-NEXT: s_endpgm
3729 ; GFX10-CU-LABEL: flat_agent_seq_cst_acquire_cmpxchg:
3730 ; GFX10-CU: ; %bb.0: ; %entry
3731 ; GFX10-CU-NEXT: s_clause 0x1
3732 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
3733 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
3734 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
3735 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
3736 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
3737 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
3738 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
3739 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
3740 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
3741 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
3742 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
3743 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
3744 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
3745 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
3746 ; GFX10-CU-NEXT: buffer_gl0_inv
3747 ; GFX10-CU-NEXT: buffer_gl1_inv
3748 ; GFX10-CU-NEXT: s_endpgm
3837 ; GFX11-CU-LABEL: flat_agent_seq_cst_acquire_cmpxchg:
3838 ; GFX11-CU: ; %bb.0: ; %entry
3839 ; GFX11-CU-NEXT: s_clause 0x1
3840 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
3841 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
3842 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
3843 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
3844 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
3845 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
3846 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
3847 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
3848 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
3849 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
3850 ; GFX11-CU-NEXT: buffer_gl0_inv
3851 ; GFX11-CU-NEXT: buffer_gl1_inv
3852 ; GFX11-CU-NEXT: s_endpgm
3899 ; GFX10-CU-LABEL: flat_agent_monotonic_seq_cst_cmpxchg:
3900 ; GFX10-CU: ; %bb.0: ; %entry
3901 ; GFX10-CU-NEXT: s_clause 0x1
3902 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
3903 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
3904 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
3905 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
3906 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
3907 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
3908 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
3909 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
3910 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
3911 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
3912 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
3913 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
3914 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
3915 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
3916 ; GFX10-CU-NEXT: buffer_gl0_inv
3917 ; GFX10-CU-NEXT: buffer_gl1_inv
3918 ; GFX10-CU-NEXT: s_endpgm
4007 ; GFX11-CU-LABEL: flat_agent_monotonic_seq_cst_cmpxchg:
4008 ; GFX11-CU: ; %bb.0: ; %entry
4009 ; GFX11-CU-NEXT: s_clause 0x1
4010 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
4011 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
4012 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
4013 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
4014 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
4015 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
4016 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
4017 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
4018 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
4019 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
4020 ; GFX11-CU-NEXT: buffer_gl0_inv
4021 ; GFX11-CU-NEXT: buffer_gl1_inv
4022 ; GFX11-CU-NEXT: s_endpgm
4069 ; GFX10-CU-LABEL: flat_agent_acquire_seq_cst_cmpxchg:
4070 ; GFX10-CU: ; %bb.0: ; %entry
4071 ; GFX10-CU-NEXT: s_clause 0x1
4072 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
4073 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
4074 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
4075 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
4076 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
4077 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
4078 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
4079 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
4080 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
4081 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
4082 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
4083 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
4084 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
4085 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
4086 ; GFX10-CU-NEXT: buffer_gl0_inv
4087 ; GFX10-CU-NEXT: buffer_gl1_inv
4088 ; GFX10-CU-NEXT: s_endpgm
4177 ; GFX11-CU-LABEL: flat_agent_acquire_seq_cst_cmpxchg:
4178 ; GFX11-CU: ; %bb.0: ; %entry
4179 ; GFX11-CU-NEXT: s_clause 0x1
4180 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
4181 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
4182 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
4183 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
4184 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
4185 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
4186 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
4187 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
4188 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
4189 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
4190 ; GFX11-CU-NEXT: buffer_gl0_inv
4191 ; GFX11-CU-NEXT: buffer_gl1_inv
4192 ; GFX11-CU-NEXT: s_endpgm
4239 ; GFX10-CU-LABEL: flat_agent_release_seq_cst_cmpxchg:
4240 ; GFX10-CU: ; %bb.0: ; %entry
4241 ; GFX10-CU-NEXT: s_clause 0x1
4242 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
4243 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
4244 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
4245 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
4246 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
4247 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
4248 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
4249 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
4250 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
4251 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
4252 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
4253 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
4254 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
4255 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
4256 ; GFX10-CU-NEXT: buffer_gl0_inv
4257 ; GFX10-CU-NEXT: buffer_gl1_inv
4258 ; GFX10-CU-NEXT: s_endpgm
4347 ; GFX11-CU-LABEL: flat_agent_release_seq_cst_cmpxchg:
4348 ; GFX11-CU: ; %bb.0: ; %entry
4349 ; GFX11-CU-NEXT: s_clause 0x1
4350 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
4351 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
4352 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
4353 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
4354 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
4355 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
4356 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
4357 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
4358 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
4359 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
4360 ; GFX11-CU-NEXT: buffer_gl0_inv
4361 ; GFX11-CU-NEXT: buffer_gl1_inv
4362 ; GFX11-CU-NEXT: s_endpgm
4409 ; GFX10-CU-LABEL: flat_agent_acq_rel_seq_cst_cmpxchg:
4410 ; GFX10-CU: ; %bb.0: ; %entry
4411 ; GFX10-CU-NEXT: s_clause 0x1
4412 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
4413 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
4414 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
4415 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
4416 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
4417 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
4418 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
4419 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
4420 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
4421 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
4422 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
4423 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
4424 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
4425 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
4426 ; GFX10-CU-NEXT: buffer_gl0_inv
4427 ; GFX10-CU-NEXT: buffer_gl1_inv
4428 ; GFX10-CU-NEXT: s_endpgm
4517 ; GFX11-CU-LABEL: flat_agent_acq_rel_seq_cst_cmpxchg:
4518 ; GFX11-CU: ; %bb.0: ; %entry
4519 ; GFX11-CU-NEXT: s_clause 0x1
4520 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
4521 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
4522 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
4523 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
4524 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
4525 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
4526 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
4527 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
4528 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
4529 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
4530 ; GFX11-CU-NEXT: buffer_gl0_inv
4531 ; GFX11-CU-NEXT: buffer_gl1_inv
4532 ; GFX11-CU-NEXT: s_endpgm
4579 ; GFX10-CU-LABEL: flat_agent_seq_cst_seq_cst_cmpxchg:
4580 ; GFX10-CU: ; %bb.0: ; %entry
4581 ; GFX10-CU-NEXT: s_clause 0x1
4582 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
4583 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
4584 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
4585 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
4586 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
4587 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
4588 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
4589 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
4590 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
4591 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
4592 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
4593 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
4594 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
4595 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
4596 ; GFX10-CU-NEXT: buffer_gl0_inv
4597 ; GFX10-CU-NEXT: buffer_gl1_inv
4598 ; GFX10-CU-NEXT: s_endpgm
4687 ; GFX11-CU-LABEL: flat_agent_seq_cst_seq_cst_cmpxchg:
4688 ; GFX11-CU: ; %bb.0: ; %entry
4689 ; GFX11-CU-NEXT: s_clause 0x1
4690 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
4691 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
4692 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
4693 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
4694 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
4695 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
4696 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
4697 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
4698 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
4699 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
4700 ; GFX11-CU-NEXT: buffer_gl0_inv
4701 ; GFX11-CU-NEXT: buffer_gl1_inv
4702 ; GFX11-CU-NEXT: s_endpgm
4748 ; GFX10-CU-LABEL: flat_agent_monotonic_monotonic_ret_cmpxchg:
4749 ; GFX10-CU: ; %bb.0: ; %entry
4750 ; GFX10-CU-NEXT: s_clause 0x1
4751 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
4752 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
4753 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
4754 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
4755 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
4756 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
4757 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
4758 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
4759 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
4760 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
4761 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
4762 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
4763 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
4764 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
4765 ; GFX10-CU-NEXT: s_endpgm
4847 ; GFX11-CU-LABEL: flat_agent_monotonic_monotonic_ret_cmpxchg:
4848 ; GFX11-CU: ; %bb.0: ; %entry
4849 ; GFX11-CU-NEXT: s_clause 0x1
4850 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
4851 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
4852 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
4853 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
4854 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
4855 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
4856 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
4857 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
4858 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
4859 ; GFX11-CU-NEXT: s_endpgm
4910 ; GFX10-CU-LABEL: flat_agent_acquire_monotonic_ret_cmpxchg:
4911 ; GFX10-CU: ; %bb.0: ; %entry
4912 ; GFX10-CU-NEXT: s_clause 0x1
4913 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
4914 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
4915 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
4916 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
4917 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
4918 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
4919 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
4920 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
4921 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
4922 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
4923 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
4924 ; GFX10-CU-NEXT: buffer_gl0_inv
4925 ; GFX10-CU-NEXT: buffer_gl1_inv
4926 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
4927 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
4928 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
4929 ; GFX10-CU-NEXT: s_endpgm
5017 ; GFX11-CU-LABEL: flat_agent_acquire_monotonic_ret_cmpxchg:
5018 ; GFX11-CU: ; %bb.0: ; %entry
5019 ; GFX11-CU-NEXT: s_clause 0x1
5020 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
5021 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
5022 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
5023 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
5024 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
5025 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
5026 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
5027 ; GFX11-CU-NEXT: buffer_gl0_inv
5028 ; GFX11-CU-NEXT: buffer_gl1_inv
5029 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
5030 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
5031 ; GFX11-CU-NEXT: s_endpgm
5082 ; GFX10-CU-LABEL: flat_agent_release_monotonic_ret_cmpxchg:
5083 ; GFX10-CU: ; %bb.0: ; %entry
5084 ; GFX10-CU-NEXT: s_clause 0x1
5085 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
5086 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
5087 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
5088 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
5089 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
5090 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
5091 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
5092 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
5093 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
5094 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
5095 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
5096 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
5097 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
5098 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
5099 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
5100 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
5101 ; GFX10-CU-NEXT: s_endpgm
5192 ; GFX11-CU-LABEL: flat_agent_release_monotonic_ret_cmpxchg:
5193 ; GFX11-CU: ; %bb.0: ; %entry
5194 ; GFX11-CU-NEXT: s_clause 0x1
5195 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
5196 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
5197 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
5198 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
5199 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
5200 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
5201 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
5202 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
5203 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
5204 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
5205 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
5206 ; GFX11-CU-NEXT: s_endpgm
5260 ; GFX10-CU-LABEL: flat_agent_acq_rel_monotonic_ret_cmpxchg:
5261 ; GFX10-CU: ; %bb.0: ; %entry
5262 ; GFX10-CU-NEXT: s_clause 0x1
5263 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
5264 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
5265 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
5266 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
5267 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
5268 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
5269 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
5270 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
5271 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
5272 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
5273 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
5274 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
5275 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
5276 ; GFX10-CU-NEXT: buffer_gl0_inv
5277 ; GFX10-CU-NEXT: buffer_gl1_inv
5278 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
5279 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
5280 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
5281 ; GFX10-CU-NEXT: s_endpgm
5378 ; GFX11-CU-LABEL: flat_agent_acq_rel_monotonic_ret_cmpxchg:
5379 ; GFX11-CU: ; %bb.0: ; %entry
5380 ; GFX11-CU-NEXT: s_clause 0x1
5381 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
5382 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
5383 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
5384 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
5385 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
5386 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
5387 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
5388 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
5389 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
5390 ; GFX11-CU-NEXT: buffer_gl0_inv
5391 ; GFX11-CU-NEXT: buffer_gl1_inv
5392 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
5393 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
5394 ; GFX11-CU-NEXT: s_endpgm
5448 ; GFX10-CU-LABEL: flat_agent_seq_cst_monotonic_ret_cmpxchg:
5449 ; GFX10-CU: ; %bb.0: ; %entry
5450 ; GFX10-CU-NEXT: s_clause 0x1
5451 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
5452 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
5453 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
5454 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
5455 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
5456 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
5457 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
5458 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
5459 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
5460 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
5461 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
5462 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
5463 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
5464 ; GFX10-CU-NEXT: buffer_gl0_inv
5465 ; GFX10-CU-NEXT: buffer_gl1_inv
5466 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
5467 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
5468 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
5469 ; GFX10-CU-NEXT: s_endpgm
5566 ; GFX11-CU-LABEL: flat_agent_seq_cst_monotonic_ret_cmpxchg:
5567 ; GFX11-CU: ; %bb.0: ; %entry
5568 ; GFX11-CU-NEXT: s_clause 0x1
5569 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
5570 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
5571 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
5572 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
5573 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
5574 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
5575 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
5576 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
5577 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
5578 ; GFX11-CU-NEXT: buffer_gl0_inv
5579 ; GFX11-CU-NEXT: buffer_gl1_inv
5580 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
5581 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
5582 ; GFX11-CU-NEXT: s_endpgm
5633 ; GFX10-CU-LABEL: flat_agent_monotonic_acquire_ret_cmpxchg:
5634 ; GFX10-CU: ; %bb.0: ; %entry
5635 ; GFX10-CU-NEXT: s_clause 0x1
5636 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
5637 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
5638 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
5639 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
5640 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
5641 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
5642 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
5643 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
5644 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
5645 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
5646 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
5647 ; GFX10-CU-NEXT: buffer_gl0_inv
5648 ; GFX10-CU-NEXT: buffer_gl1_inv
5649 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
5650 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
5651 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
5652 ; GFX10-CU-NEXT: s_endpgm
5740 ; GFX11-CU-LABEL: flat_agent_monotonic_acquire_ret_cmpxchg:
5741 ; GFX11-CU: ; %bb.0: ; %entry
5742 ; GFX11-CU-NEXT: s_clause 0x1
5743 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
5744 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
5745 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
5746 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
5747 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
5748 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
5749 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
5750 ; GFX11-CU-NEXT: buffer_gl0_inv
5751 ; GFX11-CU-NEXT: buffer_gl1_inv
5752 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
5753 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
5754 ; GFX11-CU-NEXT: s_endpgm
5805 ; GFX10-CU-LABEL: flat_agent_acquire_acquire_ret_cmpxchg:
5806 ; GFX10-CU: ; %bb.0: ; %entry
5807 ; GFX10-CU-NEXT: s_clause 0x1
5808 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
5809 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
5810 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
5811 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
5812 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
5813 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
5814 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
5815 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
5816 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
5817 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
5818 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
5819 ; GFX10-CU-NEXT: buffer_gl0_inv
5820 ; GFX10-CU-NEXT: buffer_gl1_inv
5821 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
5822 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
5823 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
5824 ; GFX10-CU-NEXT: s_endpgm
5912 ; GFX11-CU-LABEL: flat_agent_acquire_acquire_ret_cmpxchg:
5913 ; GFX11-CU: ; %bb.0: ; %entry
5914 ; GFX11-CU-NEXT: s_clause 0x1
5915 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
5916 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
5917 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
5918 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
5919 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
5920 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
5921 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
5922 ; GFX11-CU-NEXT: buffer_gl0_inv
5923 ; GFX11-CU-NEXT: buffer_gl1_inv
5924 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
5925 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
5926 ; GFX11-CU-NEXT: s_endpgm
5980 ; GFX10-CU-LABEL: flat_agent_release_acquire_ret_cmpxchg:
5981 ; GFX10-CU: ; %bb.0: ; %entry
5982 ; GFX10-CU-NEXT: s_clause 0x1
5983 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
5984 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
5985 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
5986 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
5987 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
5988 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
5989 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
5990 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
5991 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
5992 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
5993 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
5994 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
5995 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
5996 ; GFX10-CU-NEXT: buffer_gl0_inv
5997 ; GFX10-CU-NEXT: buffer_gl1_inv
5998 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
5999 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
6000 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
6001 ; GFX10-CU-NEXT: s_endpgm
6098 ; GFX11-CU-LABEL: flat_agent_release_acquire_ret_cmpxchg:
6099 ; GFX11-CU: ; %bb.0: ; %entry
6100 ; GFX11-CU-NEXT: s_clause 0x1
6101 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
6102 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
6103 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
6104 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
6105 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
6106 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6107 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
6108 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
6109 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6110 ; GFX11-CU-NEXT: buffer_gl0_inv
6111 ; GFX11-CU-NEXT: buffer_gl1_inv
6112 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
6113 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
6114 ; GFX11-CU-NEXT: s_endpgm
6168 ; GFX10-CU-LABEL: flat_agent_acq_rel_acquire_ret_cmpxchg:
6169 ; GFX10-CU: ; %bb.0: ; %entry
6170 ; GFX10-CU-NEXT: s_clause 0x1
6171 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
6172 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
6173 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
6174 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
6175 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
6176 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
6177 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
6178 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
6179 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
6180 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6181 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
6182 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
6183 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6184 ; GFX10-CU-NEXT: buffer_gl0_inv
6185 ; GFX10-CU-NEXT: buffer_gl1_inv
6186 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
6187 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
6188 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
6189 ; GFX10-CU-NEXT: s_endpgm
6286 ; GFX11-CU-LABEL: flat_agent_acq_rel_acquire_ret_cmpxchg:
6287 ; GFX11-CU: ; %bb.0: ; %entry
6288 ; GFX11-CU-NEXT: s_clause 0x1
6289 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
6290 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
6291 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
6292 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
6293 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
6294 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6295 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
6296 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
6297 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6298 ; GFX11-CU-NEXT: buffer_gl0_inv
6299 ; GFX11-CU-NEXT: buffer_gl1_inv
6300 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
6301 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
6302 ; GFX11-CU-NEXT: s_endpgm
6356 ; GFX10-CU-LABEL: flat_agent_seq_cst_acquire_ret_cmpxchg:
6357 ; GFX10-CU: ; %bb.0: ; %entry
6358 ; GFX10-CU-NEXT: s_clause 0x1
6359 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
6360 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
6361 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
6362 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
6363 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
6364 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
6365 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
6366 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
6367 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
6368 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6369 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
6370 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
6371 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6372 ; GFX10-CU-NEXT: buffer_gl0_inv
6373 ; GFX10-CU-NEXT: buffer_gl1_inv
6374 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
6375 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
6376 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
6377 ; GFX10-CU-NEXT: s_endpgm
6474 ; GFX11-CU-LABEL: flat_agent_seq_cst_acquire_ret_cmpxchg:
6475 ; GFX11-CU: ; %bb.0: ; %entry
6476 ; GFX11-CU-NEXT: s_clause 0x1
6477 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
6478 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
6479 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
6480 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
6481 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
6482 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6483 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
6484 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
6485 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6486 ; GFX11-CU-NEXT: buffer_gl0_inv
6487 ; GFX11-CU-NEXT: buffer_gl1_inv
6488 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
6489 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
6490 ; GFX11-CU-NEXT: s_endpgm
6544 ; GFX10-CU-LABEL: flat_agent_monotonic_seq_cst_ret_cmpxchg:
6545 ; GFX10-CU: ; %bb.0: ; %entry
6546 ; GFX10-CU-NEXT: s_clause 0x1
6547 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
6548 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
6549 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
6550 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
6551 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
6552 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
6553 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
6554 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
6555 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
6556 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6557 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
6558 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
6559 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6560 ; GFX10-CU-NEXT: buffer_gl0_inv
6561 ; GFX10-CU-NEXT: buffer_gl1_inv
6562 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
6563 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
6564 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
6565 ; GFX10-CU-NEXT: s_endpgm
6662 ; GFX11-CU-LABEL: flat_agent_monotonic_seq_cst_ret_cmpxchg:
6663 ; GFX11-CU: ; %bb.0: ; %entry
6664 ; GFX11-CU-NEXT: s_clause 0x1
6665 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
6666 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
6667 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
6668 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
6669 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
6670 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6671 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
6672 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
6673 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6674 ; GFX11-CU-NEXT: buffer_gl0_inv
6675 ; GFX11-CU-NEXT: buffer_gl1_inv
6676 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
6677 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
6678 ; GFX11-CU-NEXT: s_endpgm
6732 ; GFX10-CU-LABEL: flat_agent_acquire_seq_cst_ret_cmpxchg:
6733 ; GFX10-CU: ; %bb.0: ; %entry
6734 ; GFX10-CU-NEXT: s_clause 0x1
6735 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
6736 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
6737 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
6738 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
6739 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
6740 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
6741 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
6742 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
6743 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
6744 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6745 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
6746 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
6747 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6748 ; GFX10-CU-NEXT: buffer_gl0_inv
6749 ; GFX10-CU-NEXT: buffer_gl1_inv
6750 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
6751 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
6752 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
6753 ; GFX10-CU-NEXT: s_endpgm
6850 ; GFX11-CU-LABEL: flat_agent_acquire_seq_cst_ret_cmpxchg:
6851 ; GFX11-CU: ; %bb.0: ; %entry
6852 ; GFX11-CU-NEXT: s_clause 0x1
6853 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
6854 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
6855 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
6856 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
6857 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
6858 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6859 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
6860 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
6861 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6862 ; GFX11-CU-NEXT: buffer_gl0_inv
6863 ; GFX11-CU-NEXT: buffer_gl1_inv
6864 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
6865 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
6866 ; GFX11-CU-NEXT: s_endpgm
6920 ; GFX10-CU-LABEL: flat_agent_release_seq_cst_ret_cmpxchg:
6921 ; GFX10-CU: ; %bb.0: ; %entry
6922 ; GFX10-CU-NEXT: s_clause 0x1
6923 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
6924 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
6925 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
6926 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
6927 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
6928 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
6929 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
6930 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
6931 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
6932 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6933 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
6934 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
6935 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6936 ; GFX10-CU-NEXT: buffer_gl0_inv
6937 ; GFX10-CU-NEXT: buffer_gl1_inv
6938 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
6939 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
6940 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
6941 ; GFX10-CU-NEXT: s_endpgm
7038 ; GFX11-CU-LABEL: flat_agent_release_seq_cst_ret_cmpxchg:
7039 ; GFX11-CU: ; %bb.0: ; %entry
7040 ; GFX11-CU-NEXT: s_clause 0x1
7041 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
7042 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
7043 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
7044 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
7045 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
7046 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
7047 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
7048 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
7049 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
7050 ; GFX11-CU-NEXT: buffer_gl0_inv
7051 ; GFX11-CU-NEXT: buffer_gl1_inv
7052 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
7053 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
7054 ; GFX11-CU-NEXT: s_endpgm
7108 ; GFX10-CU-LABEL: flat_agent_acq_rel_seq_cst_ret_cmpxchg:
7109 ; GFX10-CU: ; %bb.0: ; %entry
7110 ; GFX10-CU-NEXT: s_clause 0x1
7111 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
7112 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
7113 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
7114 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
7115 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
7116 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
7117 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
7118 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
7119 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
7120 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
7121 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
7122 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
7123 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
7124 ; GFX10-CU-NEXT: buffer_gl0_inv
7125 ; GFX10-CU-NEXT: buffer_gl1_inv
7126 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
7127 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
7128 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
7129 ; GFX10-CU-NEXT: s_endpgm
7226 ; GFX11-CU-LABEL: flat_agent_acq_rel_seq_cst_ret_cmpxchg:
7227 ; GFX11-CU: ; %bb.0: ; %entry
7228 ; GFX11-CU-NEXT: s_clause 0x1
7229 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
7230 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
7231 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
7232 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
7233 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
7234 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
7235 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
7236 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
7237 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
7238 ; GFX11-CU-NEXT: buffer_gl0_inv
7239 ; GFX11-CU-NEXT: buffer_gl1_inv
7240 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
7241 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
7242 ; GFX11-CU-NEXT: s_endpgm
7296 ; GFX10-CU-LABEL: flat_agent_seq_cst_seq_cst_ret_cmpxchg:
7297 ; GFX10-CU: ; %bb.0: ; %entry
7298 ; GFX10-CU-NEXT: s_clause 0x1
7299 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
7300 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
7301 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
7302 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
7303 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
7304 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
7305 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
7306 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
7307 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
7308 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
7309 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
7310 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
7311 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
7312 ; GFX10-CU-NEXT: buffer_gl0_inv
7313 ; GFX10-CU-NEXT: buffer_gl1_inv
7314 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
7315 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
7316 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
7317 ; GFX10-CU-NEXT: s_endpgm
7414 ; GFX11-CU-LABEL: flat_agent_seq_cst_seq_cst_ret_cmpxchg:
7415 ; GFX11-CU: ; %bb.0: ; %entry
7416 ; GFX11-CU-NEXT: s_clause 0x1
7417 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
7418 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
7419 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
7420 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
7421 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
7422 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
7423 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
7424 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
7425 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
7426 ; GFX11-CU-NEXT: buffer_gl0_inv
7427 ; GFX11-CU-NEXT: buffer_gl1_inv
7428 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
7429 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
7430 ; GFX11-CU-NEXT: s_endpgm
7467 ; GFX10-CU-LABEL: flat_agent_one_as_unordered_load:
7468 ; GFX10-CU: ; %bb.0: ; %entry
7469 ; GFX10-CU-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
7470 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
7471 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
7472 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
7473 ; GFX10-CU-NEXT: flat_load_dword v2, v[0:1]
7474 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s2
7475 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s3
7476 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
7477 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
7478 ; GFX10-CU-NEXT: s_endpgm
7557 ; GFX11-CU-LABEL: flat_agent_one_as_unordered_load:
7558 ; GFX11-CU: ; %bb.0: ; %entry
7559 ; GFX11-CU-NEXT: s_load_b128 s[0:3], s[0:1], 0x0
7560 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
7561 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
7562 ; GFX11-CU-NEXT: flat_load_b32 v2, v[0:1]
7563 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
7564 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
7565 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
7566 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
7567 ; GFX11-CU-NEXT: s_endpgm
7602 ; GFX10-CU-LABEL: flat_agent_one_as_monotonic_load:
7603 ; GFX10-CU: ; %bb.0: ; %entry
7604 ; GFX10-CU-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
7605 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
7606 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
7607 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
7608 ; GFX10-CU-NEXT: flat_load_dword v2, v[0:1] glc dlc
7609 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s2
7610 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s3
7611 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
7612 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
7613 ; GFX10-CU-NEXT: s_endpgm
7692 ; GFX11-CU-LABEL: flat_agent_one_as_monotonic_load:
7693 ; GFX11-CU: ; %bb.0: ; %entry
7694 ; GFX11-CU-NEXT: s_load_b128 s[0:3], s[0:1], 0x0
7695 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
7696 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
7697 ; GFX11-CU-NEXT: flat_load_b32 v2, v[0:1] glc
7698 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
7699 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
7700 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
7701 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
7702 ; GFX11-CU-NEXT: s_endpgm
7742 ; GFX10-CU-LABEL: flat_agent_one_as_acquire_load:
7743 ; GFX10-CU: ; %bb.0: ; %entry
7744 ; GFX10-CU-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
7745 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
7746 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
7747 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
7748 ; GFX10-CU-NEXT: flat_load_dword v2, v[0:1] glc dlc
7749 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
7750 ; GFX10-CU-NEXT: buffer_gl0_inv
7751 ; GFX10-CU-NEXT: buffer_gl1_inv
7752 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s2
7753 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s3
7754 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
7755 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
7756 ; GFX10-CU-NEXT: s_endpgm
7845 ; GFX11-CU-LABEL: flat_agent_one_as_acquire_load:
7846 ; GFX11-CU: ; %bb.0: ; %entry
7847 ; GFX11-CU-NEXT: s_load_b128 s[0:3], s[0:1], 0x0
7848 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
7849 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
7850 ; GFX11-CU-NEXT: flat_load_b32 v2, v[0:1] glc
7851 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
7852 ; GFX11-CU-NEXT: buffer_gl0_inv
7853 ; GFX11-CU-NEXT: buffer_gl1_inv
7854 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
7855 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
7856 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
7857 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
7858 ; GFX11-CU-NEXT: s_endpgm
7901 ; GFX10-CU-LABEL: flat_agent_one_as_seq_cst_load:
7902 ; GFX10-CU: ; %bb.0: ; %entry
7903 ; GFX10-CU-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
7904 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
7905 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
7906 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
7907 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
7908 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
7909 ; GFX10-CU-NEXT: flat_load_dword v2, v[0:1] glc dlc
7910 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
7911 ; GFX10-CU-NEXT: buffer_gl0_inv
7912 ; GFX10-CU-NEXT: buffer_gl1_inv
7913 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s2
7914 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s3
7915 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
7916 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
7917 ; GFX10-CU-NEXT: s_endpgm
8013 ; GFX11-CU-LABEL: flat_agent_one_as_seq_cst_load:
8014 ; GFX11-CU: ; %bb.0: ; %entry
8015 ; GFX11-CU-NEXT: s_load_b128 s[0:3], s[0:1], 0x0
8016 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
8017 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
8018 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
8019 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
8020 ; GFX11-CU-NEXT: flat_load_b32 v2, v[0:1] glc
8021 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
8022 ; GFX11-CU-NEXT: buffer_gl0_inv
8023 ; GFX11-CU-NEXT: buffer_gl1_inv
8024 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
8025 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
8026 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
8027 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
8028 ; GFX11-CU-NEXT: s_endpgm
8060 ; GFX10-CU-LABEL: flat_agent_one_as_unordered_store:
8061 ; GFX10-CU: ; %bb.0: ; %entry
8062 ; GFX10-CU-NEXT: s_clause 0x1
8063 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
8064 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x0
8065 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
8066 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
8067 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
8068 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
8069 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
8070 ; GFX10-CU-NEXT: s_endpgm
8135 ; GFX11-CU-LABEL: flat_agent_one_as_unordered_store:
8136 ; GFX11-CU: ; %bb.0: ; %entry
8137 ; GFX11-CU-NEXT: s_clause 0x1
8138 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
8139 ; GFX11-CU-NEXT: s_load_b32 s0, s[0:1], 0x0
8140 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
8141 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
8142 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, s0
8143 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
8144 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
8145 ; GFX11-CU-NEXT: s_endpgm
8176 ; GFX10-CU-LABEL: flat_agent_one_as_monotonic_store:
8177 ; GFX10-CU: ; %bb.0: ; %entry
8178 ; GFX10-CU-NEXT: s_clause 0x1
8179 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
8180 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x0
8181 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
8182 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
8183 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
8184 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
8185 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
8186 ; GFX10-CU-NEXT: s_endpgm
8251 ; GFX11-CU-LABEL: flat_agent_one_as_monotonic_store:
8252 ; GFX11-CU: ; %bb.0: ; %entry
8253 ; GFX11-CU-NEXT: s_clause 0x1
8254 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
8255 ; GFX11-CU-NEXT: s_load_b32 s0, s[0:1], 0x0
8256 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
8257 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
8258 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, s0
8259 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
8260 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
8261 ; GFX11-CU-NEXT: s_endpgm
8295 ; GFX10-CU-LABEL: flat_agent_one_as_release_store:
8296 ; GFX10-CU: ; %bb.0: ; %entry
8297 ; GFX10-CU-NEXT: s_clause 0x1
8298 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
8299 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x0
8300 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
8301 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
8302 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
8303 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
8304 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
8305 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
8306 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
8307 ; GFX10-CU-NEXT: s_endpgm
8381 ; GFX11-CU-LABEL: flat_agent_one_as_release_store:
8382 ; GFX11-CU: ; %bb.0: ; %entry
8383 ; GFX11-CU-NEXT: s_clause 0x1
8384 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
8385 ; GFX11-CU-NEXT: s_load_b32 s0, s[0:1], 0x0
8386 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
8387 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
8388 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, s0
8389 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
8390 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
8391 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
8392 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
8393 ; GFX11-CU-NEXT: s_endpgm
8427 ; GFX10-CU-LABEL: flat_agent_one_as_seq_cst_store:
8428 ; GFX10-CU: ; %bb.0: ; %entry
8429 ; GFX10-CU-NEXT: s_clause 0x1
8430 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
8431 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x0
8432 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
8433 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
8434 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
8435 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
8436 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
8437 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
8438 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
8439 ; GFX10-CU-NEXT: s_endpgm
8513 ; GFX11-CU-LABEL: flat_agent_one_as_seq_cst_store:
8514 ; GFX11-CU: ; %bb.0: ; %entry
8515 ; GFX11-CU-NEXT: s_clause 0x1
8516 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
8517 ; GFX11-CU-NEXT: s_load_b32 s0, s[0:1], 0x0
8518 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
8519 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
8520 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, s0
8521 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
8522 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
8523 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
8524 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
8525 ; GFX11-CU-NEXT: s_endpgm
8556 ; GFX10-CU-LABEL: flat_agent_one_as_monotonic_atomicrmw:
8557 ; GFX10-CU: ; %bb.0: ; %entry
8558 ; GFX10-CU-NEXT: s_clause 0x1
8559 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
8560 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
8561 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
8562 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
8563 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
8564 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
8565 ; GFX10-CU-NEXT: flat_atomic_swap v[0:1], v2
8566 ; GFX10-CU-NEXT: s_endpgm
8631 ; GFX11-CU-LABEL: flat_agent_one_as_monotonic_atomicrmw:
8632 ; GFX11-CU: ; %bb.0: ; %entry
8633 ; GFX11-CU-NEXT: s_clause 0x1
8634 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
8635 ; GFX11-CU-NEXT: s_load_b32 s0, s[0:1], 0x8
8636 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
8637 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
8638 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, s0
8639 ; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
8640 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
8641 ; GFX11-CU-NEXT: s_endpgm
8677 ; GFX10-CU-LABEL: flat_agent_one_as_acquire_atomicrmw:
8678 ; GFX10-CU: ; %bb.0: ; %entry
8679 ; GFX10-CU-NEXT: s_clause 0x1
8680 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
8681 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
8682 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
8683 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
8684 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
8685 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
8686 ; GFX10-CU-NEXT: flat_atomic_swap v[0:1], v2
8687 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
8688 ; GFX10-CU-NEXT: buffer_gl0_inv
8689 ; GFX10-CU-NEXT: buffer_gl1_inv
8690 ; GFX10-CU-NEXT: s_endpgm
8766 ; GFX11-CU-LABEL: flat_agent_one_as_acquire_atomicrmw:
8767 ; GFX11-CU: ; %bb.0: ; %entry
8768 ; GFX11-CU-NEXT: s_clause 0x1
8769 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
8770 ; GFX11-CU-NEXT: s_load_b32 s0, s[0:1], 0x8
8771 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
8772 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
8773 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, s0
8774 ; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
8775 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
8776 ; GFX11-CU-NEXT: buffer_gl0_inv
8777 ; GFX11-CU-NEXT: buffer_gl1_inv
8778 ; GFX11-CU-NEXT: s_endpgm
8812 ; GFX10-CU-LABEL: flat_agent_one_as_release_atomicrmw:
8813 ; GFX10-CU: ; %bb.0: ; %entry
8814 ; GFX10-CU-NEXT: s_clause 0x1
8815 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
8816 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
8817 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
8818 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
8819 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
8820 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
8821 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
8822 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
8823 ; GFX10-CU-NEXT: flat_atomic_swap v[0:1], v2
8824 ; GFX10-CU-NEXT: s_endpgm
8898 ; GFX11-CU-LABEL: flat_agent_one_as_release_atomicrmw:
8899 ; GFX11-CU: ; %bb.0: ; %entry
8900 ; GFX11-CU-NEXT: s_clause 0x1
8901 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
8902 ; GFX11-CU-NEXT: s_load_b32 s0, s[0:1], 0x8
8903 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
8904 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
8905 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, s0
8906 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
8907 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
8908 ; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
8909 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
8910 ; GFX11-CU-NEXT: s_endpgm
8949 ; GFX10-CU-LABEL: flat_agent_one_as_acq_rel_atomicrmw:
8950 ; GFX10-CU: ; %bb.0: ; %entry
8951 ; GFX10-CU-NEXT: s_clause 0x1
8952 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
8953 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
8954 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
8955 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
8956 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
8957 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
8958 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
8959 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
8960 ; GFX10-CU-NEXT: flat_atomic_swap v[0:1], v2
8961 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
8962 ; GFX10-CU-NEXT: buffer_gl0_inv
8963 ; GFX10-CU-NEXT: buffer_gl1_inv
8964 ; GFX10-CU-NEXT: s_endpgm
9049 ; GFX11-CU-LABEL: flat_agent_one_as_acq_rel_atomicrmw:
9050 ; GFX11-CU: ; %bb.0: ; %entry
9051 ; GFX11-CU-NEXT: s_clause 0x1
9052 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
9053 ; GFX11-CU-NEXT: s_load_b32 s0, s[0:1], 0x8
9054 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
9055 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
9056 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, s0
9057 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
9058 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
9059 ; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
9060 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
9061 ; GFX11-CU-NEXT: buffer_gl0_inv
9062 ; GFX11-CU-NEXT: buffer_gl1_inv
9063 ; GFX11-CU-NEXT: s_endpgm
9102 ; GFX10-CU-LABEL: flat_agent_one_as_seq_cst_atomicrmw:
9103 ; GFX10-CU: ; %bb.0: ; %entry
9104 ; GFX10-CU-NEXT: s_clause 0x1
9105 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
9106 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
9107 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
9108 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
9109 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
9110 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
9111 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
9112 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
9113 ; GFX10-CU-NEXT: flat_atomic_swap v[0:1], v2
9114 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
9115 ; GFX10-CU-NEXT: buffer_gl0_inv
9116 ; GFX10-CU-NEXT: buffer_gl1_inv
9117 ; GFX10-CU-NEXT: s_endpgm
9202 ; GFX11-CU-LABEL: flat_agent_one_as_seq_cst_atomicrmw:
9203 ; GFX11-CU: ; %bb.0: ; %entry
9204 ; GFX11-CU-NEXT: s_clause 0x1
9205 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
9206 ; GFX11-CU-NEXT: s_load_b32 s0, s[0:1], 0x8
9207 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
9208 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
9209 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, s0
9210 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
9211 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
9212 ; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
9213 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
9214 ; GFX11-CU-NEXT: buffer_gl0_inv
9215 ; GFX11-CU-NEXT: buffer_gl1_inv
9216 ; GFX11-CU-NEXT: s_endpgm
9256 ; GFX10-CU-LABEL: flat_agent_one_as_acquire_ret_atomicrmw:
9257 ; GFX10-CU: ; %bb.0: ; %entry
9258 ; GFX10-CU-NEXT: s_clause 0x1
9259 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
9260 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
9261 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
9262 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
9263 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
9264 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
9265 ; GFX10-CU-NEXT: flat_atomic_swap v2, v[0:1], v2 glc
9266 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
9267 ; GFX10-CU-NEXT: buffer_gl0_inv
9268 ; GFX10-CU-NEXT: buffer_gl1_inv
9269 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
9270 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
9271 ; GFX10-CU-NEXT: s_endpgm
9357 ; GFX11-CU-LABEL: flat_agent_one_as_acquire_ret_atomicrmw:
9358 ; GFX11-CU: ; %bb.0: ; %entry
9359 ; GFX11-CU-NEXT: s_clause 0x1
9360 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
9361 ; GFX11-CU-NEXT: s_load_b32 s0, s[0:1], 0x8
9362 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
9363 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
9364 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, s0
9365 ; GFX11-CU-NEXT: flat_atomic_swap_b32 v2, v[0:1], v2 glc
9366 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
9367 ; GFX11-CU-NEXT: buffer_gl0_inv
9368 ; GFX11-CU-NEXT: buffer_gl1_inv
9369 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
9370 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
9371 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
9372 ; GFX11-CU-NEXT: s_endpgm
9416 ; GFX10-CU-LABEL: flat_agent_one_as_acq_rel_ret_atomicrmw:
9417 ; GFX10-CU: ; %bb.0: ; %entry
9418 ; GFX10-CU-NEXT: s_clause 0x1
9419 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
9420 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
9421 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
9422 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
9423 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
9424 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
9425 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
9426 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
9427 ; GFX10-CU-NEXT: flat_atomic_swap v2, v[0:1], v2 glc
9428 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
9429 ; GFX10-CU-NEXT: buffer_gl0_inv
9430 ; GFX10-CU-NEXT: buffer_gl1_inv
9431 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
9432 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
9433 ; GFX10-CU-NEXT: s_endpgm
9528 ; GFX11-CU-LABEL: flat_agent_one_as_acq_rel_ret_atomicrmw:
9529 ; GFX11-CU: ; %bb.0: ; %entry
9530 ; GFX11-CU-NEXT: s_clause 0x1
9531 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
9532 ; GFX11-CU-NEXT: s_load_b32 s0, s[0:1], 0x8
9533 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
9534 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
9535 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, s0
9536 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
9537 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
9538 ; GFX11-CU-NEXT: flat_atomic_swap_b32 v2, v[0:1], v2 glc
9539 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
9540 ; GFX11-CU-NEXT: buffer_gl0_inv
9541 ; GFX11-CU-NEXT: buffer_gl1_inv
9542 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
9543 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
9544 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
9545 ; GFX11-CU-NEXT: s_endpgm
9589 ; GFX10-CU-LABEL: flat_agent_one_as_seq_cst_ret_atomicrmw:
9590 ; GFX10-CU: ; %bb.0: ; %entry
9591 ; GFX10-CU-NEXT: s_clause 0x1
9592 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
9593 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
9594 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
9595 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
9596 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
9597 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
9598 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
9599 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
9600 ; GFX10-CU-NEXT: flat_atomic_swap v2, v[0:1], v2 glc
9601 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
9602 ; GFX10-CU-NEXT: buffer_gl0_inv
9603 ; GFX10-CU-NEXT: buffer_gl1_inv
9604 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
9605 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
9606 ; GFX10-CU-NEXT: s_endpgm
9701 ; GFX11-CU-LABEL: flat_agent_one_as_seq_cst_ret_atomicrmw:
9702 ; GFX11-CU: ; %bb.0: ; %entry
9703 ; GFX11-CU-NEXT: s_clause 0x1
9704 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
9705 ; GFX11-CU-NEXT: s_load_b32 s0, s[0:1], 0x8
9706 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
9707 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
9708 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, s0
9709 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
9710 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
9711 ; GFX11-CU-NEXT: flat_atomic_swap_b32 v2, v[0:1], v2 glc
9712 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
9713 ; GFX11-CU-NEXT: buffer_gl0_inv
9714 ; GFX11-CU-NEXT: buffer_gl1_inv
9715 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
9716 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
9717 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
9718 ; GFX11-CU-NEXT: s_endpgm
9756 ; GFX10-CU-LABEL: flat_agent_one_as_monotonic_monotonic_cmpxchg:
9757 ; GFX10-CU: ; %bb.0: ; %entry
9758 ; GFX10-CU-NEXT: s_clause 0x1
9759 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
9760 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
9761 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
9762 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
9763 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
9764 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
9765 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
9766 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
9767 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
9768 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
9769 ; GFX10-CU-NEXT: s_endpgm
9837 ; GFX11-CU-LABEL: flat_agent_one_as_monotonic_monotonic_cmpxchg:
9838 ; GFX11-CU: ; %bb.0: ; %entry
9839 ; GFX11-CU-NEXT: s_clause 0x1
9840 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
9841 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
9842 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
9843 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
9844 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
9845 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
9846 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
9847 ; GFX11-CU-NEXT: s_endpgm
9890 ; GFX10-CU-LABEL: flat_agent_one_as_acquire_monotonic_cmpxchg:
9891 ; GFX10-CU: ; %bb.0: ; %entry
9892 ; GFX10-CU-NEXT: s_clause 0x1
9893 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
9894 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
9895 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
9896 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
9897 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
9898 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
9899 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
9900 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
9901 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
9902 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
9903 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
9904 ; GFX10-CU-NEXT: buffer_gl0_inv
9905 ; GFX10-CU-NEXT: buffer_gl1_inv
9906 ; GFX10-CU-NEXT: s_endpgm
9985 ; GFX11-CU-LABEL: flat_agent_one_as_acquire_monotonic_cmpxchg:
9986 ; GFX11-CU: ; %bb.0: ; %entry
9987 ; GFX11-CU-NEXT: s_clause 0x1
9988 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
9989 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
9990 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
9991 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
9992 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
9993 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
9994 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
9995 ; GFX11-CU-NEXT: buffer_gl0_inv
9996 ; GFX11-CU-NEXT: buffer_gl1_inv
9997 ; GFX11-CU-NEXT: s_endpgm
10038 ; GFX10-CU-LABEL: flat_agent_one_as_release_monotonic_cmpxchg:
10039 ; GFX10-CU: ; %bb.0: ; %entry
10040 ; GFX10-CU-NEXT: s_clause 0x1
10041 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
10042 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
10043 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
10044 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
10045 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
10046 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
10047 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
10048 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
10049 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
10050 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
10051 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
10052 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
10053 ; GFX10-CU-NEXT: s_endpgm
10130 ; GFX11-CU-LABEL: flat_agent_one_as_release_monotonic_cmpxchg:
10131 ; GFX11-CU: ; %bb.0: ; %entry
10132 ; GFX11-CU-NEXT: s_clause 0x1
10133 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
10134 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
10135 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
10136 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
10137 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
10138 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
10139 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
10140 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
10141 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
10142 ; GFX11-CU-NEXT: s_endpgm
10188 ; GFX10-CU-LABEL: flat_agent_one_as_acq_rel_monotonic_cmpxchg:
10189 ; GFX10-CU: ; %bb.0: ; %entry
10190 ; GFX10-CU-NEXT: s_clause 0x1
10191 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
10192 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
10193 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
10194 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
10195 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
10196 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
10197 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
10198 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
10199 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
10200 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
10201 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
10202 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
10203 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
10204 ; GFX10-CU-NEXT: buffer_gl0_inv
10205 ; GFX10-CU-NEXT: buffer_gl1_inv
10206 ; GFX10-CU-NEXT: s_endpgm
10294 ; GFX11-CU-LABEL: flat_agent_one_as_acq_rel_monotonic_cmpxchg:
10295 ; GFX11-CU: ; %bb.0: ; %entry
10296 ; GFX11-CU-NEXT: s_clause 0x1
10297 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
10298 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
10299 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
10300 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
10301 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
10302 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
10303 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
10304 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
10305 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
10306 ; GFX11-CU-NEXT: buffer_gl0_inv
10307 ; GFX11-CU-NEXT: buffer_gl1_inv
10308 ; GFX11-CU-NEXT: s_endpgm
10354 ; GFX10-CU-LABEL: flat_agent_one_as_seq_cst_monotonic_cmpxchg:
10355 ; GFX10-CU: ; %bb.0: ; %entry
10356 ; GFX10-CU-NEXT: s_clause 0x1
10357 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
10358 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
10359 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
10360 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
10361 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
10362 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
10363 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
10364 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
10365 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
10366 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
10367 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
10368 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
10369 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
10370 ; GFX10-CU-NEXT: buffer_gl0_inv
10371 ; GFX10-CU-NEXT: buffer_gl1_inv
10372 ; GFX10-CU-NEXT: s_endpgm
10460 ; GFX11-CU-LABEL: flat_agent_one_as_seq_cst_monotonic_cmpxchg:
10461 ; GFX11-CU: ; %bb.0: ; %entry
10462 ; GFX11-CU-NEXT: s_clause 0x1
10463 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
10464 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
10465 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
10466 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
10467 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
10468 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
10469 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
10470 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
10471 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
10472 ; GFX11-CU-NEXT: buffer_gl0_inv
10473 ; GFX11-CU-NEXT: buffer_gl1_inv
10474 ; GFX11-CU-NEXT: s_endpgm
10517 ; GFX10-CU-LABEL: flat_agent_one_as_monotonic_acquire_cmpxchg:
10518 ; GFX10-CU: ; %bb.0: ; %entry
10519 ; GFX10-CU-NEXT: s_clause 0x1
10520 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
10521 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
10522 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
10523 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
10524 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
10525 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
10526 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
10527 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
10528 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
10529 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
10530 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
10531 ; GFX10-CU-NEXT: buffer_gl0_inv
10532 ; GFX10-CU-NEXT: buffer_gl1_inv
10533 ; GFX10-CU-NEXT: s_endpgm
10612 ; GFX11-CU-LABEL: flat_agent_one_as_monotonic_acquire_cmpxchg:
10613 ; GFX11-CU: ; %bb.0: ; %entry
10614 ; GFX11-CU-NEXT: s_clause 0x1
10615 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
10616 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
10617 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
10618 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
10619 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
10620 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
10621 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
10622 ; GFX11-CU-NEXT: buffer_gl0_inv
10623 ; GFX11-CU-NEXT: buffer_gl1_inv
10624 ; GFX11-CU-NEXT: s_endpgm
10667 ; GFX10-CU-LABEL: flat_agent_one_as_acquire_acquire_cmpxchg:
10668 ; GFX10-CU: ; %bb.0: ; %entry
10669 ; GFX10-CU-NEXT: s_clause 0x1
10670 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
10671 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
10672 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
10673 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
10674 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
10675 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
10676 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
10677 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
10678 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
10679 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
10680 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
10681 ; GFX10-CU-NEXT: buffer_gl0_inv
10682 ; GFX10-CU-NEXT: buffer_gl1_inv
10683 ; GFX10-CU-NEXT: s_endpgm
10762 ; GFX11-CU-LABEL: flat_agent_one_as_acquire_acquire_cmpxchg:
10763 ; GFX11-CU: ; %bb.0: ; %entry
10764 ; GFX11-CU-NEXT: s_clause 0x1
10765 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
10766 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
10767 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
10768 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
10769 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
10770 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
10771 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
10772 ; GFX11-CU-NEXT: buffer_gl0_inv
10773 ; GFX11-CU-NEXT: buffer_gl1_inv
10774 ; GFX11-CU-NEXT: s_endpgm
10820 ; GFX10-CU-LABEL: flat_agent_one_as_release_acquire_cmpxchg:
10821 ; GFX10-CU: ; %bb.0: ; %entry
10822 ; GFX10-CU-NEXT: s_clause 0x1
10823 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
10824 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
10825 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
10826 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
10827 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
10828 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
10829 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
10830 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
10831 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
10832 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
10833 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
10834 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
10835 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
10836 ; GFX10-CU-NEXT: buffer_gl0_inv
10837 ; GFX10-CU-NEXT: buffer_gl1_inv
10838 ; GFX10-CU-NEXT: s_endpgm
10926 ; GFX11-CU-LABEL: flat_agent_one_as_release_acquire_cmpxchg:
10927 ; GFX11-CU: ; %bb.0: ; %entry
10928 ; GFX11-CU-NEXT: s_clause 0x1
10929 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
10930 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
10931 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
10932 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
10933 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
10934 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
10935 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
10936 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
10937 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
10938 ; GFX11-CU-NEXT: buffer_gl0_inv
10939 ; GFX11-CU-NEXT: buffer_gl1_inv
10940 ; GFX11-CU-NEXT: s_endpgm
10986 ; GFX10-CU-LABEL: flat_agent_one_as_acq_rel_acquire_cmpxchg:
10987 ; GFX10-CU: ; %bb.0: ; %entry
10988 ; GFX10-CU-NEXT: s_clause 0x1
10989 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
10990 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
10991 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
10992 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
10993 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
10994 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
10995 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
10996 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
10997 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
10998 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
10999 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
11000 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
11001 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
11002 ; GFX10-CU-NEXT: buffer_gl0_inv
11003 ; GFX10-CU-NEXT: buffer_gl1_inv
11004 ; GFX10-CU-NEXT: s_endpgm
11092 ; GFX11-CU-LABEL: flat_agent_one_as_acq_rel_acquire_cmpxchg:
11093 ; GFX11-CU: ; %bb.0: ; %entry
11094 ; GFX11-CU-NEXT: s_clause 0x1
11095 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
11096 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
11097 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
11098 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
11099 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
11100 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
11101 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
11102 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
11103 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
11104 ; GFX11-CU-NEXT: buffer_gl0_inv
11105 ; GFX11-CU-NEXT: buffer_gl1_inv
11106 ; GFX11-CU-NEXT: s_endpgm
11152 ; GFX10-CU-LABEL: flat_agent_one_as_seq_cst_acquire_cmpxchg:
11153 ; GFX10-CU: ; %bb.0: ; %entry
11154 ; GFX10-CU-NEXT: s_clause 0x1
11155 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
11156 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
11157 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
11158 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
11159 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
11160 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
11161 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
11162 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
11163 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
11164 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
11165 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
11166 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
11167 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
11168 ; GFX10-CU-NEXT: buffer_gl0_inv
11169 ; GFX10-CU-NEXT: buffer_gl1_inv
11170 ; GFX10-CU-NEXT: s_endpgm
11258 ; GFX11-CU-LABEL: flat_agent_one_as_seq_cst_acquire_cmpxchg:
11259 ; GFX11-CU: ; %bb.0: ; %entry
11260 ; GFX11-CU-NEXT: s_clause 0x1
11261 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
11262 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
11263 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
11264 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
11265 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
11266 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
11267 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
11268 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
11269 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
11270 ; GFX11-CU-NEXT: buffer_gl0_inv
11271 ; GFX11-CU-NEXT: buffer_gl1_inv
11272 ; GFX11-CU-NEXT: s_endpgm
11318 ; GFX10-CU-LABEL: flat_agent_one_as_monotonic_seq_cst_cmpxchg:
11319 ; GFX10-CU: ; %bb.0: ; %entry
11320 ; GFX10-CU-NEXT: s_clause 0x1
11321 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
11322 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
11323 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
11324 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
11325 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
11326 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
11327 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
11328 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
11329 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
11330 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
11331 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
11332 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
11333 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
11334 ; GFX10-CU-NEXT: buffer_gl0_inv
11335 ; GFX10-CU-NEXT: buffer_gl1_inv
11336 ; GFX10-CU-NEXT: s_endpgm
11424 ; GFX11-CU-LABEL: flat_agent_one_as_monotonic_seq_cst_cmpxchg:
11425 ; GFX11-CU: ; %bb.0: ; %entry
11426 ; GFX11-CU-NEXT: s_clause 0x1
11427 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
11428 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
11429 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
11430 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
11431 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
11432 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
11433 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
11434 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
11435 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
11436 ; GFX11-CU-NEXT: buffer_gl0_inv
11437 ; GFX11-CU-NEXT: buffer_gl1_inv
11438 ; GFX11-CU-NEXT: s_endpgm
11484 ; GFX10-CU-LABEL: flat_agent_one_as_acquire_seq_cst_cmpxchg:
11485 ; GFX10-CU: ; %bb.0: ; %entry
11486 ; GFX10-CU-NEXT: s_clause 0x1
11487 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
11488 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
11489 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
11490 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
11491 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
11492 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
11493 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
11494 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
11495 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
11496 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
11497 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
11498 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
11499 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
11500 ; GFX10-CU-NEXT: buffer_gl0_inv
11501 ; GFX10-CU-NEXT: buffer_gl1_inv
11502 ; GFX10-CU-NEXT: s_endpgm
11590 ; GFX11-CU-LABEL: flat_agent_one_as_acquire_seq_cst_cmpxchg:
11591 ; GFX11-CU: ; %bb.0: ; %entry
11592 ; GFX11-CU-NEXT: s_clause 0x1
11593 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
11594 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
11595 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
11596 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
11597 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
11598 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
11599 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
11600 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
11601 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
11602 ; GFX11-CU-NEXT: buffer_gl0_inv
11603 ; GFX11-CU-NEXT: buffer_gl1_inv
11604 ; GFX11-CU-NEXT: s_endpgm
11650 ; GFX10-CU-LABEL: flat_agent_one_as_release_seq_cst_cmpxchg:
11651 ; GFX10-CU: ; %bb.0: ; %entry
11652 ; GFX10-CU-NEXT: s_clause 0x1
11653 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
11654 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
11655 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
11656 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
11657 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
11658 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
11659 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
11660 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
11661 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
11662 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
11663 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
11664 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
11665 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
11666 ; GFX10-CU-NEXT: buffer_gl0_inv
11667 ; GFX10-CU-NEXT: buffer_gl1_inv
11668 ; GFX10-CU-NEXT: s_endpgm
11756 ; GFX11-CU-LABEL: flat_agent_one_as_release_seq_cst_cmpxchg:
11757 ; GFX11-CU: ; %bb.0: ; %entry
11758 ; GFX11-CU-NEXT: s_clause 0x1
11759 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
11760 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
11761 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
11762 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
11763 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
11764 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
11765 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
11766 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
11767 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
11768 ; GFX11-CU-NEXT: buffer_gl0_inv
11769 ; GFX11-CU-NEXT: buffer_gl1_inv
11770 ; GFX11-CU-NEXT: s_endpgm
11816 ; GFX10-CU-LABEL: flat_agent_one_as_acq_rel_seq_cst_cmpxchg:
11817 ; GFX10-CU: ; %bb.0: ; %entry
11818 ; GFX10-CU-NEXT: s_clause 0x1
11819 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
11820 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
11821 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
11822 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
11823 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
11824 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
11825 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
11826 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
11827 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
11828 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
11829 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
11830 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
11831 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
11832 ; GFX10-CU-NEXT: buffer_gl0_inv
11833 ; GFX10-CU-NEXT: buffer_gl1_inv
11834 ; GFX10-CU-NEXT: s_endpgm
11922 ; GFX11-CU-LABEL: flat_agent_one_as_acq_rel_seq_cst_cmpxchg:
11923 ; GFX11-CU: ; %bb.0: ; %entry
11924 ; GFX11-CU-NEXT: s_clause 0x1
11925 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
11926 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
11927 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
11928 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
11929 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
11930 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
11931 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
11932 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
11933 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
11934 ; GFX11-CU-NEXT: buffer_gl0_inv
11935 ; GFX11-CU-NEXT: buffer_gl1_inv
11936 ; GFX11-CU-NEXT: s_endpgm
11982 ; GFX10-CU-LABEL: flat_agent_one_as_seq_cst_seq_cst_cmpxchg:
11983 ; GFX10-CU: ; %bb.0: ; %entry
11984 ; GFX10-CU-NEXT: s_clause 0x1
11985 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
11986 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
11987 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
11988 ; GFX10-CU-NEXT: s_add_u32 s0, s0, 16
11989 ; GFX10-CU-NEXT: s_addc_u32 s1, s1, 0
11990 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
11991 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
11992 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
11993 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
11994 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
11995 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
11996 ; GFX10-CU-NEXT: flat_atomic_cmpswap v[0:1], v[2:3]
11997 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
11998 ; GFX10-CU-NEXT: buffer_gl0_inv
11999 ; GFX10-CU-NEXT: buffer_gl1_inv
12000 ; GFX10-CU-NEXT: s_endpgm
12088 ; GFX11-CU-LABEL: flat_agent_one_as_seq_cst_seq_cst_cmpxchg:
12089 ; GFX11-CU: ; %bb.0: ; %entry
12090 ; GFX11-CU-NEXT: s_clause 0x1
12091 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
12092 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
12093 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
12094 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
12095 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
12096 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
12097 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
12098 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
12099 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
12100 ; GFX11-CU-NEXT: buffer_gl0_inv
12101 ; GFX11-CU-NEXT: buffer_gl1_inv
12102 ; GFX11-CU-NEXT: s_endpgm
12148 ; GFX10-CU-LABEL: flat_agent_one_as_monotonic_monotonic_ret_cmpxchg:
12149 ; GFX10-CU: ; %bb.0: ; %entry
12150 ; GFX10-CU-NEXT: s_clause 0x1
12151 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
12152 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
12153 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
12154 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
12155 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
12156 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
12157 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
12158 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
12159 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
12160 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
12161 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
12162 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
12163 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
12164 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
12165 ; GFX10-CU-NEXT: s_endpgm
12247 ; GFX11-CU-LABEL: flat_agent_one_as_monotonic_monotonic_ret_cmpxchg:
12248 ; GFX11-CU: ; %bb.0: ; %entry
12249 ; GFX11-CU-NEXT: s_clause 0x1
12250 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
12251 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
12252 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
12253 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
12254 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
12255 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
12256 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
12257 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
12258 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
12259 ; GFX11-CU-NEXT: s_endpgm
12312 ; GFX10-CU-LABEL: flat_agent_one_as_acquire_monotonic_ret_cmpxchg:
12313 ; GFX10-CU: ; %bb.0: ; %entry
12314 ; GFX10-CU-NEXT: s_clause 0x1
12315 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
12316 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
12317 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
12318 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
12319 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
12320 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
12321 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
12322 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
12323 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
12324 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
12325 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
12326 ; GFX10-CU-NEXT: buffer_gl0_inv
12327 ; GFX10-CU-NEXT: buffer_gl1_inv
12328 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
12329 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
12330 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
12331 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
12332 ; GFX10-CU-NEXT: s_endpgm
12424 ; GFX11-CU-LABEL: flat_agent_one_as_acquire_monotonic_ret_cmpxchg:
12425 ; GFX11-CU: ; %bb.0: ; %entry
12426 ; GFX11-CU-NEXT: s_clause 0x1
12427 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
12428 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
12429 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
12430 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
12431 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
12432 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
12433 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
12434 ; GFX11-CU-NEXT: buffer_gl0_inv
12435 ; GFX11-CU-NEXT: buffer_gl1_inv
12436 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
12437 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
12438 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
12439 ; GFX11-CU-NEXT: s_endpgm
12490 ; GFX10-CU-LABEL: flat_agent_one_as_release_monotonic_ret_cmpxchg:
12491 ; GFX10-CU: ; %bb.0: ; %entry
12492 ; GFX10-CU-NEXT: s_clause 0x1
12493 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
12494 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
12495 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
12496 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
12497 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
12498 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
12499 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
12500 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
12501 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
12502 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
12503 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
12504 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
12505 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
12506 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
12507 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
12508 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
12509 ; GFX10-CU-NEXT: s_endpgm
12600 ; GFX11-CU-LABEL: flat_agent_one_as_release_monotonic_ret_cmpxchg:
12601 ; GFX11-CU: ; %bb.0: ; %entry
12602 ; GFX11-CU-NEXT: s_clause 0x1
12603 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
12604 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
12605 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
12606 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
12607 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
12608 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
12609 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
12610 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
12611 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
12612 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
12613 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
12614 ; GFX11-CU-NEXT: s_endpgm
12670 ; GFX10-CU-LABEL: flat_agent_one_as_acq_rel_monotonic_ret_cmpxchg:
12671 ; GFX10-CU: ; %bb.0: ; %entry
12672 ; GFX10-CU-NEXT: s_clause 0x1
12673 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
12674 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
12675 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
12676 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
12677 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
12678 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
12679 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
12680 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
12681 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
12682 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
12683 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
12684 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
12685 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
12686 ; GFX10-CU-NEXT: buffer_gl0_inv
12687 ; GFX10-CU-NEXT: buffer_gl1_inv
12688 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
12689 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
12690 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
12691 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
12692 ; GFX10-CU-NEXT: s_endpgm
12793 ; GFX11-CU-LABEL: flat_agent_one_as_acq_rel_monotonic_ret_cmpxchg:
12794 ; GFX11-CU: ; %bb.0: ; %entry
12795 ; GFX11-CU-NEXT: s_clause 0x1
12796 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
12797 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
12798 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
12799 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
12800 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
12801 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
12802 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
12803 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
12804 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
12805 ; GFX11-CU-NEXT: buffer_gl0_inv
12806 ; GFX11-CU-NEXT: buffer_gl1_inv
12807 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
12808 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
12809 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
12810 ; GFX11-CU-NEXT: s_endpgm
12866 ; GFX10-CU-LABEL: flat_agent_one_as_seq_cst_monotonic_ret_cmpxchg:
12867 ; GFX10-CU: ; %bb.0: ; %entry
12868 ; GFX10-CU-NEXT: s_clause 0x1
12869 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
12870 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
12871 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
12872 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
12873 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
12874 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
12875 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
12876 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
12877 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
12878 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
12879 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
12880 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
12881 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
12882 ; GFX10-CU-NEXT: buffer_gl0_inv
12883 ; GFX10-CU-NEXT: buffer_gl1_inv
12884 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
12885 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
12886 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
12887 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
12888 ; GFX10-CU-NEXT: s_endpgm
12989 ; GFX11-CU-LABEL: flat_agent_one_as_seq_cst_monotonic_ret_cmpxchg:
12990 ; GFX11-CU: ; %bb.0: ; %entry
12991 ; GFX11-CU-NEXT: s_clause 0x1
12992 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
12993 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
12994 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
12995 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
12996 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
12997 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
12998 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
12999 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
13000 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
13001 ; GFX11-CU-NEXT: buffer_gl0_inv
13002 ; GFX11-CU-NEXT: buffer_gl1_inv
13003 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
13004 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
13005 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
13006 ; GFX11-CU-NEXT: s_endpgm
13059 ; GFX10-CU-LABEL: flat_agent_one_as_monotonic_acquire_ret_cmpxchg:
13060 ; GFX10-CU: ; %bb.0: ; %entry
13061 ; GFX10-CU-NEXT: s_clause 0x1
13062 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
13063 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
13064 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
13065 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
13066 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
13067 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
13068 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
13069 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
13070 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
13071 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
13072 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
13073 ; GFX10-CU-NEXT: buffer_gl0_inv
13074 ; GFX10-CU-NEXT: buffer_gl1_inv
13075 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
13076 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
13077 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
13078 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
13079 ; GFX10-CU-NEXT: s_endpgm
13171 ; GFX11-CU-LABEL: flat_agent_one_as_monotonic_acquire_ret_cmpxchg:
13172 ; GFX11-CU: ; %bb.0: ; %entry
13173 ; GFX11-CU-NEXT: s_clause 0x1
13174 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
13175 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
13176 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
13177 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
13178 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
13179 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
13180 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
13181 ; GFX11-CU-NEXT: buffer_gl0_inv
13182 ; GFX11-CU-NEXT: buffer_gl1_inv
13183 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
13184 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
13185 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
13186 ; GFX11-CU-NEXT: s_endpgm
13239 ; GFX10-CU-LABEL: flat_agent_one_as_acquire_acquire_ret_cmpxchg:
13240 ; GFX10-CU: ; %bb.0: ; %entry
13241 ; GFX10-CU-NEXT: s_clause 0x1
13242 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
13243 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
13244 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
13245 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
13246 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
13247 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
13248 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
13249 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
13250 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
13251 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
13252 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
13253 ; GFX10-CU-NEXT: buffer_gl0_inv
13254 ; GFX10-CU-NEXT: buffer_gl1_inv
13255 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
13256 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
13257 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
13258 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
13259 ; GFX10-CU-NEXT: s_endpgm
13351 ; GFX11-CU-LABEL: flat_agent_one_as_acquire_acquire_ret_cmpxchg:
13352 ; GFX11-CU: ; %bb.0: ; %entry
13353 ; GFX11-CU-NEXT: s_clause 0x1
13354 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
13355 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
13356 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
13357 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
13358 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
13359 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
13360 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
13361 ; GFX11-CU-NEXT: buffer_gl0_inv
13362 ; GFX11-CU-NEXT: buffer_gl1_inv
13363 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
13364 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
13365 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
13366 ; GFX11-CU-NEXT: s_endpgm
13422 ; GFX10-CU-LABEL: flat_agent_one_as_release_acquire_ret_cmpxchg:
13423 ; GFX10-CU: ; %bb.0: ; %entry
13424 ; GFX10-CU-NEXT: s_clause 0x1
13425 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
13426 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
13427 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
13428 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
13429 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
13430 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
13431 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
13432 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
13433 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
13434 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
13435 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
13436 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
13437 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
13438 ; GFX10-CU-NEXT: buffer_gl0_inv
13439 ; GFX10-CU-NEXT: buffer_gl1_inv
13440 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
13441 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
13442 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
13443 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
13444 ; GFX10-CU-NEXT: s_endpgm
13545 ; GFX11-CU-LABEL: flat_agent_one_as_release_acquire_ret_cmpxchg:
13546 ; GFX11-CU: ; %bb.0: ; %entry
13547 ; GFX11-CU-NEXT: s_clause 0x1
13548 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
13549 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
13550 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
13551 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
13552 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
13553 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
13554 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
13555 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
13556 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
13557 ; GFX11-CU-NEXT: buffer_gl0_inv
13558 ; GFX11-CU-NEXT: buffer_gl1_inv
13559 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
13560 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
13561 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
13562 ; GFX11-CU-NEXT: s_endpgm
13618 ; GFX10-CU-LABEL: flat_agent_one_as_acq_rel_acquire_ret_cmpxchg:
13619 ; GFX10-CU: ; %bb.0: ; %entry
13620 ; GFX10-CU-NEXT: s_clause 0x1
13621 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
13622 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
13623 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
13624 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
13625 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
13626 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
13627 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
13628 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
13629 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
13630 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
13631 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
13632 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
13633 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
13634 ; GFX10-CU-NEXT: buffer_gl0_inv
13635 ; GFX10-CU-NEXT: buffer_gl1_inv
13636 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
13637 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
13638 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
13639 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
13640 ; GFX10-CU-NEXT: s_endpgm
13741 ; GFX11-CU-LABEL: flat_agent_one_as_acq_rel_acquire_ret_cmpxchg:
13742 ; GFX11-CU: ; %bb.0: ; %entry
13743 ; GFX11-CU-NEXT: s_clause 0x1
13744 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
13745 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
13746 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
13747 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
13748 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
13749 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
13750 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
13751 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
13752 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
13753 ; GFX11-CU-NEXT: buffer_gl0_inv
13754 ; GFX11-CU-NEXT: buffer_gl1_inv
13755 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
13756 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
13757 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
13758 ; GFX11-CU-NEXT: s_endpgm
13814 ; GFX10-CU-LABEL: flat_agent_one_as_seq_cst_acquire_ret_cmpxchg:
13815 ; GFX10-CU: ; %bb.0: ; %entry
13816 ; GFX10-CU-NEXT: s_clause 0x1
13817 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
13818 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
13819 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
13820 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
13821 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
13822 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
13823 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
13824 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
13825 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
13826 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
13827 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
13828 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
13829 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
13830 ; GFX10-CU-NEXT: buffer_gl0_inv
13831 ; GFX10-CU-NEXT: buffer_gl1_inv
13832 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
13833 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
13834 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
13835 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
13836 ; GFX10-CU-NEXT: s_endpgm
13937 ; GFX11-CU-LABEL: flat_agent_one_as_seq_cst_acquire_ret_cmpxchg:
13938 ; GFX11-CU: ; %bb.0: ; %entry
13939 ; GFX11-CU-NEXT: s_clause 0x1
13940 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
13941 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
13942 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
13943 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
13944 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
13945 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
13946 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
13947 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
13948 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
13949 ; GFX11-CU-NEXT: buffer_gl0_inv
13950 ; GFX11-CU-NEXT: buffer_gl1_inv
13951 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
13952 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
13953 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
13954 ; GFX11-CU-NEXT: s_endpgm
14010 ; GFX10-CU-LABEL: flat_agent_one_as_monotonic_seq_cst_ret_cmpxchg:
14011 ; GFX10-CU: ; %bb.0: ; %entry
14012 ; GFX10-CU-NEXT: s_clause 0x1
14013 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
14014 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
14015 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
14016 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
14017 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
14018 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
14019 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
14020 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
14021 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
14022 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
14023 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
14024 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
14025 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
14026 ; GFX10-CU-NEXT: buffer_gl0_inv
14027 ; GFX10-CU-NEXT: buffer_gl1_inv
14028 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
14029 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
14030 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
14031 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
14032 ; GFX10-CU-NEXT: s_endpgm
14133 ; GFX11-CU-LABEL: flat_agent_one_as_monotonic_seq_cst_ret_cmpxchg:
14134 ; GFX11-CU: ; %bb.0: ; %entry
14135 ; GFX11-CU-NEXT: s_clause 0x1
14136 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
14137 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
14138 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
14139 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
14140 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
14141 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
14142 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
14143 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
14144 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
14145 ; GFX11-CU-NEXT: buffer_gl0_inv
14146 ; GFX11-CU-NEXT: buffer_gl1_inv
14147 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
14148 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
14149 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
14150 ; GFX11-CU-NEXT: s_endpgm
14206 ; GFX10-CU-LABEL: flat_agent_one_as_acquire_seq_cst_ret_cmpxchg:
14207 ; GFX10-CU: ; %bb.0: ; %entry
14208 ; GFX10-CU-NEXT: s_clause 0x1
14209 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
14210 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
14211 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
14212 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
14213 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
14214 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
14215 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
14216 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
14217 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
14218 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
14219 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
14220 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
14221 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
14222 ; GFX10-CU-NEXT: buffer_gl0_inv
14223 ; GFX10-CU-NEXT: buffer_gl1_inv
14224 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
14225 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
14226 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
14227 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
14228 ; GFX10-CU-NEXT: s_endpgm
14329 ; GFX11-CU-LABEL: flat_agent_one_as_acquire_seq_cst_ret_cmpxchg:
14330 ; GFX11-CU: ; %bb.0: ; %entry
14331 ; GFX11-CU-NEXT: s_clause 0x1
14332 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
14333 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
14334 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
14335 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
14336 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
14337 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
14338 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
14339 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
14340 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
14341 ; GFX11-CU-NEXT: buffer_gl0_inv
14342 ; GFX11-CU-NEXT: buffer_gl1_inv
14343 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
14344 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
14345 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
14346 ; GFX11-CU-NEXT: s_endpgm
14402 ; GFX10-CU-LABEL: flat_agent_one_as_release_seq_cst_ret_cmpxchg:
14403 ; GFX10-CU: ; %bb.0: ; %entry
14404 ; GFX10-CU-NEXT: s_clause 0x1
14405 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
14406 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
14407 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
14408 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
14409 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
14410 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
14411 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
14412 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
14413 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
14414 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
14415 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
14416 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
14417 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
14418 ; GFX10-CU-NEXT: buffer_gl0_inv
14419 ; GFX10-CU-NEXT: buffer_gl1_inv
14420 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
14421 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
14422 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
14423 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
14424 ; GFX10-CU-NEXT: s_endpgm
14525 ; GFX11-CU-LABEL: flat_agent_one_as_release_seq_cst_ret_cmpxchg:
14526 ; GFX11-CU: ; %bb.0: ; %entry
14527 ; GFX11-CU-NEXT: s_clause 0x1
14528 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
14529 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
14530 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
14531 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
14532 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
14533 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
14534 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
14535 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
14536 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
14537 ; GFX11-CU-NEXT: buffer_gl0_inv
14538 ; GFX11-CU-NEXT: buffer_gl1_inv
14539 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
14540 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
14541 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
14542 ; GFX11-CU-NEXT: s_endpgm
14598 ; GFX10-CU-LABEL: flat_agent_one_as_acq_rel_seq_cst_ret_cmpxchg:
14599 ; GFX10-CU: ; %bb.0: ; %entry
14600 ; GFX10-CU-NEXT: s_clause 0x1
14601 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
14602 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
14603 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
14604 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
14605 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
14606 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
14607 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
14608 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
14609 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
14610 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
14611 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
14612 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
14613 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
14614 ; GFX10-CU-NEXT: buffer_gl0_inv
14615 ; GFX10-CU-NEXT: buffer_gl1_inv
14616 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
14617 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
14618 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
14619 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
14620 ; GFX10-CU-NEXT: s_endpgm
14721 ; GFX11-CU-LABEL: flat_agent_one_as_acq_rel_seq_cst_ret_cmpxchg:
14722 ; GFX11-CU: ; %bb.0: ; %entry
14723 ; GFX11-CU-NEXT: s_clause 0x1
14724 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
14725 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
14726 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
14727 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
14728 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
14729 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
14730 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
14731 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
14732 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
14733 ; GFX11-CU-NEXT: buffer_gl0_inv
14734 ; GFX11-CU-NEXT: buffer_gl1_inv
14735 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
14736 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
14737 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
14738 ; GFX11-CU-NEXT: s_endpgm
14794 ; GFX10-CU-LABEL: flat_agent_one_as_seq_cst_seq_cst_ret_cmpxchg:
14795 ; GFX10-CU: ; %bb.0: ; %entry
14796 ; GFX10-CU-NEXT: s_clause 0x1
14797 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
14798 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
14799 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
14800 ; GFX10-CU-NEXT: s_add_u32 s4, s0, 16
14801 ; GFX10-CU-NEXT: s_addc_u32 s5, s1, 0
14802 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s4
14803 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, s2
14804 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s5
14805 ; GFX10-CU-NEXT: v_mov_b32_e32 v3, s3
14806 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
14807 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
14808 ; GFX10-CU-NEXT: flat_atomic_cmpswap v2, v[0:1], v[2:3] glc
14809 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
14810 ; GFX10-CU-NEXT: buffer_gl0_inv
14811 ; GFX10-CU-NEXT: buffer_gl1_inv
14812 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
14813 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
14814 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
14815 ; GFX10-CU-NEXT: flat_store_dword v[0:1], v2
14816 ; GFX10-CU-NEXT: s_endpgm
14917 ; GFX11-CU-LABEL: flat_agent_one_as_seq_cst_seq_cst_ret_cmpxchg:
14918 ; GFX11-CU: ; %bb.0: ; %entry
14919 ; GFX11-CU-NEXT: s_clause 0x1
14920 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x0
14921 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
14922 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
14923 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
14924 ; GFX11-CU-NEXT: v_dual_mov_b32 v3, s1 :: v_dual_mov_b32 v2, s0
14925 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
14926 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
14927 ; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v2, v[0:1], v[2:3] offset:16 glc
14928 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
14929 ; GFX11-CU-NEXT: buffer_gl0_inv
14930 ; GFX11-CU-NEXT: buffer_gl1_inv
14931 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
14932 ; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
14933 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
14934 ; GFX11-CU-NEXT: s_endpgm