Lines Matching refs:CU

5 …sa -mcpu=gfx1010 -mattr=+cumode -verify-machineinstrs < %s | FileCheck --check-prefixes=GFX10-CU %s
12 …sa -mcpu=gfx1100 -mattr=+cumode -verify-machineinstrs < %s | FileCheck --check-prefixes=GFX11-CU %s
53 ; GFX10-CU-LABEL: global_system_unordered_load:
54 ; GFX10-CU: ; %bb.0: ; %entry
55 ; GFX10-CU-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
56 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
57 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
58 ; GFX10-CU-NEXT: global_load_dword v1, v0, s[0:1]
59 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
60 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[2:3]
61 ; GFX10-CU-NEXT: s_endpgm
129 ; GFX11-CU-LABEL: global_system_unordered_load:
130 ; GFX11-CU: ; %bb.0: ; %entry
131 ; GFX11-CU-NEXT: s_load_b128 s[0:3], s[0:1], 0x0
132 ; GFX11-CU-NEXT: v_mov_b32_e32 v0, 0
133 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
134 ; GFX11-CU-NEXT: global_load_b32 v1, v0, s[0:1]
135 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
136 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
137 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
138 ; GFX11-CU-NEXT: s_endpgm
185 ; GFX10-CU-LABEL: global_system_monotonic_load:
186 ; GFX10-CU: ; %bb.0: ; %entry
187 ; GFX10-CU-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
188 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
189 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
190 ; GFX10-CU-NEXT: global_load_dword v1, v0, s[0:1] glc dlc
191 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
192 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[2:3]
193 ; GFX10-CU-NEXT: s_endpgm
261 ; GFX11-CU-LABEL: global_system_monotonic_load:
262 ; GFX11-CU: ; %bb.0: ; %entry
263 ; GFX11-CU-NEXT: s_load_b128 s[0:3], s[0:1], 0x0
264 ; GFX11-CU-NEXT: v_mov_b32_e32 v0, 0
265 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
266 ; GFX11-CU-NEXT: global_load_b32 v1, v0, s[0:1] glc
267 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
268 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
269 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
270 ; GFX11-CU-NEXT: s_endpgm
321 ; GFX10-CU-LABEL: global_system_acquire_load:
322 ; GFX10-CU: ; %bb.0: ; %entry
323 ; GFX10-CU-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
324 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
325 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
326 ; GFX10-CU-NEXT: global_load_dword v1, v0, s[0:1] glc dlc
327 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
328 ; GFX10-CU-NEXT: buffer_gl0_inv
329 ; GFX10-CU-NEXT: buffer_gl1_inv
330 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[2:3]
331 ; GFX10-CU-NEXT: s_endpgm
407 ; GFX11-CU-LABEL: global_system_acquire_load:
408 ; GFX11-CU: ; %bb.0: ; %entry
409 ; GFX11-CU-NEXT: s_load_b128 s[0:3], s[0:1], 0x0
410 ; GFX11-CU-NEXT: v_mov_b32_e32 v0, 0
411 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
412 ; GFX11-CU-NEXT: global_load_b32 v1, v0, s[0:1] glc
413 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
414 ; GFX11-CU-NEXT: buffer_gl0_inv
415 ; GFX11-CU-NEXT: buffer_gl1_inv
416 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
417 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
418 ; GFX11-CU-NEXT: s_endpgm
472 ; GFX10-CU-LABEL: global_system_seq_cst_load:
473 ; GFX10-CU: ; %bb.0: ; %entry
474 ; GFX10-CU-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
475 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
476 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
477 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
478 ; GFX10-CU-NEXT: global_load_dword v1, v0, s[0:1] glc dlc
479 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
480 ; GFX10-CU-NEXT: buffer_gl0_inv
481 ; GFX10-CU-NEXT: buffer_gl1_inv
482 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[2:3]
483 ; GFX10-CU-NEXT: s_endpgm
561 ; GFX11-CU-LABEL: global_system_seq_cst_load:
562 ; GFX11-CU: ; %bb.0: ; %entry
563 ; GFX11-CU-NEXT: s_load_b128 s[0:3], s[0:1], 0x0
564 ; GFX11-CU-NEXT: v_mov_b32_e32 v0, 0
565 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
566 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
567 ; GFX11-CU-NEXT: global_load_b32 v1, v0, s[0:1] glc
568 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
569 ; GFX11-CU-NEXT: buffer_gl0_inv
570 ; GFX11-CU-NEXT: buffer_gl1_inv
571 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
572 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
573 ; GFX11-CU-NEXT: s_endpgm
615 ; GFX10-CU-LABEL: global_system_unordered_store:
616 ; GFX10-CU: ; %bb.0: ; %entry
617 ; GFX10-CU-NEXT: s_clause 0x1
618 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x0
619 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
620 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
621 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
622 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
623 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
624 ; GFX10-CU-NEXT: s_endpgm
688 ; GFX11-CU-LABEL: global_system_unordered_store:
689 ; GFX11-CU: ; %bb.0: ; %entry
690 ; GFX11-CU-NEXT: s_clause 0x1
691 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x0
692 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
693 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
694 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
695 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
696 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
697 ; GFX11-CU-NEXT: s_endpgm
738 ; GFX10-CU-LABEL: global_system_monotonic_store:
739 ; GFX10-CU: ; %bb.0: ; %entry
740 ; GFX10-CU-NEXT: s_clause 0x1
741 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x0
742 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
743 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
744 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
745 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
746 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
747 ; GFX10-CU-NEXT: s_endpgm
811 ; GFX11-CU-LABEL: global_system_monotonic_store:
812 ; GFX11-CU: ; %bb.0: ; %entry
813 ; GFX11-CU-NEXT: s_clause 0x1
814 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x0
815 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
816 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
817 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
818 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
819 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
820 ; GFX11-CU-NEXT: s_endpgm
865 ; GFX10-CU-LABEL: global_system_release_store:
866 ; GFX10-CU: ; %bb.0: ; %entry
867 ; GFX10-CU-NEXT: s_clause 0x1
868 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x0
869 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
870 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
871 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
872 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
873 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
874 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
875 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
876 ; GFX10-CU-NEXT: s_endpgm
951 ; GFX11-CU-LABEL: global_system_release_store:
952 ; GFX11-CU: ; %bb.0: ; %entry
953 ; GFX11-CU-NEXT: s_clause 0x1
954 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x0
955 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
956 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
957 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
958 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
959 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
960 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
961 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
962 ; GFX11-CU-NEXT: s_endpgm
1007 ; GFX10-CU-LABEL: global_system_seq_cst_store:
1008 ; GFX10-CU: ; %bb.0: ; %entry
1009 ; GFX10-CU-NEXT: s_clause 0x1
1010 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x0
1011 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
1012 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
1013 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
1014 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
1015 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1016 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
1017 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
1018 ; GFX10-CU-NEXT: s_endpgm
1093 ; GFX11-CU-LABEL: global_system_seq_cst_store:
1094 ; GFX11-CU: ; %bb.0: ; %entry
1095 ; GFX11-CU-NEXT: s_clause 0x1
1096 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x0
1097 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
1098 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
1099 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
1100 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1101 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
1102 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
1103 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
1104 ; GFX11-CU-NEXT: s_endpgm
1145 ; GFX10-CU-LABEL: global_system_monotonic_atomicrmw:
1146 ; GFX10-CU: ; %bb.0: ; %entry
1147 ; GFX10-CU-NEXT: s_clause 0x1
1148 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
1149 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1150 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
1151 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
1152 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
1153 ; GFX10-CU-NEXT: global_atomic_swap v0, v1, s[0:1]
1154 ; GFX10-CU-NEXT: s_endpgm
1218 ; GFX11-CU-LABEL: global_system_monotonic_atomicrmw:
1219 ; GFX11-CU: ; %bb.0: ; %entry
1220 ; GFX11-CU-NEXT: s_clause 0x1
1221 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
1222 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
1223 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
1224 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
1225 ; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
1226 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
1227 ; GFX11-CU-NEXT: s_endpgm
1275 ; GFX10-CU-LABEL: global_system_acquire_atomicrmw:
1276 ; GFX10-CU: ; %bb.0: ; %entry
1277 ; GFX10-CU-NEXT: s_clause 0x1
1278 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
1279 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1280 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
1281 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
1282 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
1283 ; GFX10-CU-NEXT: global_atomic_swap v0, v1, s[0:1]
1284 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
1285 ; GFX10-CU-NEXT: buffer_gl0_inv
1286 ; GFX10-CU-NEXT: buffer_gl1_inv
1287 ; GFX10-CU-NEXT: s_endpgm
1364 ; GFX11-CU-LABEL: global_system_acquire_atomicrmw:
1365 ; GFX11-CU: ; %bb.0: ; %entry
1366 ; GFX11-CU-NEXT: s_clause 0x1
1367 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
1368 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
1369 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
1370 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
1371 ; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
1372 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
1373 ; GFX11-CU-NEXT: buffer_gl0_inv
1374 ; GFX11-CU-NEXT: buffer_gl1_inv
1375 ; GFX11-CU-NEXT: s_endpgm
1420 ; GFX10-CU-LABEL: global_system_release_atomicrmw:
1421 ; GFX10-CU: ; %bb.0: ; %entry
1422 ; GFX10-CU-NEXT: s_clause 0x1
1423 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
1424 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1425 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
1426 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
1427 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
1428 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1429 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
1430 ; GFX10-CU-NEXT: global_atomic_swap v0, v1, s[0:1]
1431 ; GFX10-CU-NEXT: s_endpgm
1506 ; GFX11-CU-LABEL: global_system_release_atomicrmw:
1507 ; GFX11-CU: ; %bb.0: ; %entry
1508 ; GFX11-CU-NEXT: s_clause 0x1
1509 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
1510 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
1511 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
1512 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
1513 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1514 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
1515 ; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
1516 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
1517 ; GFX11-CU-NEXT: s_endpgm
1569 ; GFX10-CU-LABEL: global_system_acq_rel_atomicrmw:
1570 ; GFX10-CU: ; %bb.0: ; %entry
1571 ; GFX10-CU-NEXT: s_clause 0x1
1572 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
1573 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1574 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
1575 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
1576 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
1577 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1578 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
1579 ; GFX10-CU-NEXT: global_atomic_swap v0, v1, s[0:1]
1580 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
1581 ; GFX10-CU-NEXT: buffer_gl0_inv
1582 ; GFX10-CU-NEXT: buffer_gl1_inv
1583 ; GFX10-CU-NEXT: s_endpgm
1671 ; GFX11-CU-LABEL: global_system_acq_rel_atomicrmw:
1672 ; GFX11-CU: ; %bb.0: ; %entry
1673 ; GFX11-CU-NEXT: s_clause 0x1
1674 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
1675 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
1676 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
1677 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
1678 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1679 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
1680 ; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
1681 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
1682 ; GFX11-CU-NEXT: buffer_gl0_inv
1683 ; GFX11-CU-NEXT: buffer_gl1_inv
1684 ; GFX11-CU-NEXT: s_endpgm
1736 ; GFX10-CU-LABEL: global_system_seq_cst_atomicrmw:
1737 ; GFX10-CU: ; %bb.0: ; %entry
1738 ; GFX10-CU-NEXT: s_clause 0x1
1739 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
1740 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1741 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
1742 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
1743 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
1744 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1745 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
1746 ; GFX10-CU-NEXT: global_atomic_swap v0, v1, s[0:1]
1747 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
1748 ; GFX10-CU-NEXT: buffer_gl0_inv
1749 ; GFX10-CU-NEXT: buffer_gl1_inv
1750 ; GFX10-CU-NEXT: s_endpgm
1838 ; GFX11-CU-LABEL: global_system_seq_cst_atomicrmw:
1839 ; GFX11-CU: ; %bb.0: ; %entry
1840 ; GFX11-CU-NEXT: s_clause 0x1
1841 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
1842 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
1843 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
1844 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
1845 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1846 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
1847 ; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
1848 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
1849 ; GFX11-CU-NEXT: buffer_gl0_inv
1850 ; GFX11-CU-NEXT: buffer_gl1_inv
1851 ; GFX11-CU-NEXT: s_endpgm
1902 ; GFX10-CU-LABEL: global_system_acquire_ret_atomicrmw:
1903 ; GFX10-CU: ; %bb.0: ; %entry
1904 ; GFX10-CU-NEXT: s_clause 0x1
1905 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
1906 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1907 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
1908 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
1909 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
1910 ; GFX10-CU-NEXT: global_atomic_swap v1, v0, v1, s[0:1] glc
1911 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
1912 ; GFX10-CU-NEXT: buffer_gl0_inv
1913 ; GFX10-CU-NEXT: buffer_gl1_inv
1914 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
1915 ; GFX10-CU-NEXT: s_endpgm
1999 ; GFX11-CU-LABEL: global_system_acquire_ret_atomicrmw:
2000 ; GFX11-CU: ; %bb.0: ; %entry
2001 ; GFX11-CU-NEXT: s_clause 0x1
2002 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
2003 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
2004 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
2005 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
2006 ; GFX11-CU-NEXT: global_atomic_swap_b32 v1, v0, v1, s[0:1] glc
2007 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
2008 ; GFX11-CU-NEXT: buffer_gl0_inv
2009 ; GFX11-CU-NEXT: buffer_gl1_inv
2010 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
2011 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
2012 ; GFX11-CU-NEXT: s_endpgm
2068 ; GFX10-CU-LABEL: global_system_acq_rel_ret_atomicrmw:
2069 ; GFX10-CU: ; %bb.0: ; %entry
2070 ; GFX10-CU-NEXT: s_clause 0x1
2071 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
2072 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
2073 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
2074 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
2075 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
2076 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2077 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
2078 ; GFX10-CU-NEXT: global_atomic_swap v1, v0, v1, s[0:1] glc
2079 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
2080 ; GFX10-CU-NEXT: buffer_gl0_inv
2081 ; GFX10-CU-NEXT: buffer_gl1_inv
2082 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
2083 ; GFX10-CU-NEXT: s_endpgm
2178 ; GFX11-CU-LABEL: global_system_acq_rel_ret_atomicrmw:
2179 ; GFX11-CU: ; %bb.0: ; %entry
2180 ; GFX11-CU-NEXT: s_clause 0x1
2181 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
2182 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
2183 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
2184 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
2185 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2186 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
2187 ; GFX11-CU-NEXT: global_atomic_swap_b32 v1, v0, v1, s[0:1] glc
2188 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
2189 ; GFX11-CU-NEXT: buffer_gl0_inv
2190 ; GFX11-CU-NEXT: buffer_gl1_inv
2191 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
2192 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
2193 ; GFX11-CU-NEXT: s_endpgm
2249 ; GFX10-CU-LABEL: global_system_seq_cst_ret_atomicrmw:
2250 ; GFX10-CU: ; %bb.0: ; %entry
2251 ; GFX10-CU-NEXT: s_clause 0x1
2252 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
2253 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
2254 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
2255 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
2256 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
2257 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2258 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
2259 ; GFX10-CU-NEXT: global_atomic_swap v1, v0, v1, s[0:1] glc
2260 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
2261 ; GFX10-CU-NEXT: buffer_gl0_inv
2262 ; GFX10-CU-NEXT: buffer_gl1_inv
2263 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
2264 ; GFX10-CU-NEXT: s_endpgm
2359 ; GFX11-CU-LABEL: global_system_seq_cst_ret_atomicrmw:
2360 ; GFX11-CU: ; %bb.0: ; %entry
2361 ; GFX11-CU-NEXT: s_clause 0x1
2362 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
2363 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
2364 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
2365 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
2366 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2367 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
2368 ; GFX11-CU-NEXT: global_atomic_swap_b32 v1, v0, v1, s[0:1] glc
2369 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
2370 ; GFX11-CU-NEXT: buffer_gl0_inv
2371 ; GFX11-CU-NEXT: buffer_gl1_inv
2372 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
2373 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
2374 ; GFX11-CU-NEXT: s_endpgm
2421 ; GFX10-CU-LABEL: global_system_monotonic_monotonic_cmpxchg:
2422 ; GFX10-CU: ; %bb.0: ; %entry
2423 ; GFX10-CU-NEXT: s_clause 0x1
2424 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
2425 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
2426 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
2427 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
2428 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
2429 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
2430 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
2431 ; GFX10-CU-NEXT: s_endpgm
2497 ; GFX11-CU-LABEL: global_system_monotonic_monotonic_cmpxchg:
2498 ; GFX11-CU: ; %bb.0: ; %entry
2499 ; GFX11-CU-NEXT: s_clause 0x1
2500 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
2501 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
2502 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
2503 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
2504 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
2505 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
2506 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
2507 ; GFX11-CU-NEXT: s_endpgm
2561 ; GFX10-CU-LABEL: global_system_acquire_monotonic_cmpxchg:
2562 ; GFX10-CU: ; %bb.0: ; %entry
2563 ; GFX10-CU-NEXT: s_clause 0x1
2564 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
2565 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
2566 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
2567 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
2568 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
2569 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
2570 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
2571 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
2572 ; GFX10-CU-NEXT: buffer_gl0_inv
2573 ; GFX10-CU-NEXT: buffer_gl1_inv
2574 ; GFX10-CU-NEXT: s_endpgm
2653 ; GFX11-CU-LABEL: global_system_acquire_monotonic_cmpxchg:
2654 ; GFX11-CU: ; %bb.0: ; %entry
2655 ; GFX11-CU-NEXT: s_clause 0x1
2656 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
2657 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
2658 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
2659 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
2660 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
2661 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
2662 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
2663 ; GFX11-CU-NEXT: buffer_gl0_inv
2664 ; GFX11-CU-NEXT: buffer_gl1_inv
2665 ; GFX11-CU-NEXT: s_endpgm
2716 ; GFX10-CU-LABEL: global_system_release_monotonic_cmpxchg:
2717 ; GFX10-CU: ; %bb.0: ; %entry
2718 ; GFX10-CU-NEXT: s_clause 0x1
2719 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
2720 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
2721 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
2722 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
2723 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
2724 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
2725 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2726 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
2727 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
2728 ; GFX10-CU-NEXT: s_endpgm
2805 ; GFX11-CU-LABEL: global_system_release_monotonic_cmpxchg:
2806 ; GFX11-CU: ; %bb.0: ; %entry
2807 ; GFX11-CU-NEXT: s_clause 0x1
2808 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
2809 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
2810 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
2811 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
2812 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
2813 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2814 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
2815 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
2816 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
2817 ; GFX11-CU-NEXT: s_endpgm
2875 ; GFX10-CU-LABEL: global_system_acq_rel_monotonic_cmpxchg:
2876 ; GFX10-CU: ; %bb.0: ; %entry
2877 ; GFX10-CU-NEXT: s_clause 0x1
2878 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
2879 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
2880 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
2881 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
2882 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
2883 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
2884 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2885 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
2886 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
2887 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
2888 ; GFX10-CU-NEXT: buffer_gl0_inv
2889 ; GFX10-CU-NEXT: buffer_gl1_inv
2890 ; GFX10-CU-NEXT: s_endpgm
2980 ; GFX11-CU-LABEL: global_system_acq_rel_monotonic_cmpxchg:
2981 ; GFX11-CU: ; %bb.0: ; %entry
2982 ; GFX11-CU-NEXT: s_clause 0x1
2983 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
2984 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
2985 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
2986 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
2987 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
2988 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2989 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
2990 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
2991 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
2992 ; GFX11-CU-NEXT: buffer_gl0_inv
2993 ; GFX11-CU-NEXT: buffer_gl1_inv
2994 ; GFX11-CU-NEXT: s_endpgm
3052 ; GFX10-CU-LABEL: global_system_seq_cst_monotonic_cmpxchg:
3053 ; GFX10-CU: ; %bb.0: ; %entry
3054 ; GFX10-CU-NEXT: s_clause 0x1
3055 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
3056 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
3057 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
3058 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
3059 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
3060 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
3061 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
3062 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
3063 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
3064 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
3065 ; GFX10-CU-NEXT: buffer_gl0_inv
3066 ; GFX10-CU-NEXT: buffer_gl1_inv
3067 ; GFX10-CU-NEXT: s_endpgm
3157 ; GFX11-CU-LABEL: global_system_seq_cst_monotonic_cmpxchg:
3158 ; GFX11-CU: ; %bb.0: ; %entry
3159 ; GFX11-CU-NEXT: s_clause 0x1
3160 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
3161 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
3162 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
3163 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
3164 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
3165 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
3166 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
3167 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
3168 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
3169 ; GFX11-CU-NEXT: buffer_gl0_inv
3170 ; GFX11-CU-NEXT: buffer_gl1_inv
3171 ; GFX11-CU-NEXT: s_endpgm
3225 ; GFX10-CU-LABEL: global_system_monotonic_acquire_cmpxchg:
3226 ; GFX10-CU: ; %bb.0: ; %entry
3227 ; GFX10-CU-NEXT: s_clause 0x1
3228 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
3229 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
3230 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
3231 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
3232 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
3233 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
3234 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
3235 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
3236 ; GFX10-CU-NEXT: buffer_gl0_inv
3237 ; GFX10-CU-NEXT: buffer_gl1_inv
3238 ; GFX10-CU-NEXT: s_endpgm
3317 ; GFX11-CU-LABEL: global_system_monotonic_acquire_cmpxchg:
3318 ; GFX11-CU: ; %bb.0: ; %entry
3319 ; GFX11-CU-NEXT: s_clause 0x1
3320 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
3321 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
3322 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
3323 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
3324 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
3325 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
3326 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
3327 ; GFX11-CU-NEXT: buffer_gl0_inv
3328 ; GFX11-CU-NEXT: buffer_gl1_inv
3329 ; GFX11-CU-NEXT: s_endpgm
3383 ; GFX10-CU-LABEL: global_system_acquire_acquire_cmpxchg:
3384 ; GFX10-CU: ; %bb.0: ; %entry
3385 ; GFX10-CU-NEXT: s_clause 0x1
3386 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
3387 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
3388 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
3389 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
3390 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
3391 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
3392 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
3393 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
3394 ; GFX10-CU-NEXT: buffer_gl0_inv
3395 ; GFX10-CU-NEXT: buffer_gl1_inv
3396 ; GFX10-CU-NEXT: s_endpgm
3475 ; GFX11-CU-LABEL: global_system_acquire_acquire_cmpxchg:
3476 ; GFX11-CU: ; %bb.0: ; %entry
3477 ; GFX11-CU-NEXT: s_clause 0x1
3478 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
3479 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
3480 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
3481 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
3482 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
3483 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
3484 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
3485 ; GFX11-CU-NEXT: buffer_gl0_inv
3486 ; GFX11-CU-NEXT: buffer_gl1_inv
3487 ; GFX11-CU-NEXT: s_endpgm
3545 ; GFX10-CU-LABEL: global_system_release_acquire_cmpxchg:
3546 ; GFX10-CU: ; %bb.0: ; %entry
3547 ; GFX10-CU-NEXT: s_clause 0x1
3548 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
3549 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
3550 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
3551 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
3552 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
3553 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
3554 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
3555 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
3556 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
3557 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
3558 ; GFX10-CU-NEXT: buffer_gl0_inv
3559 ; GFX10-CU-NEXT: buffer_gl1_inv
3560 ; GFX10-CU-NEXT: s_endpgm
3650 ; GFX11-CU-LABEL: global_system_release_acquire_cmpxchg:
3651 ; GFX11-CU: ; %bb.0: ; %entry
3652 ; GFX11-CU-NEXT: s_clause 0x1
3653 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
3654 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
3655 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
3656 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
3657 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
3658 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
3659 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
3660 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
3661 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
3662 ; GFX11-CU-NEXT: buffer_gl0_inv
3663 ; GFX11-CU-NEXT: buffer_gl1_inv
3664 ; GFX11-CU-NEXT: s_endpgm
3722 ; GFX10-CU-LABEL: global_system_acq_rel_acquire_cmpxchg:
3723 ; GFX10-CU: ; %bb.0: ; %entry
3724 ; GFX10-CU-NEXT: s_clause 0x1
3725 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
3726 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
3727 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
3728 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
3729 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
3730 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
3731 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
3732 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
3733 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
3734 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
3735 ; GFX10-CU-NEXT: buffer_gl0_inv
3736 ; GFX10-CU-NEXT: buffer_gl1_inv
3737 ; GFX10-CU-NEXT: s_endpgm
3827 ; GFX11-CU-LABEL: global_system_acq_rel_acquire_cmpxchg:
3828 ; GFX11-CU: ; %bb.0: ; %entry
3829 ; GFX11-CU-NEXT: s_clause 0x1
3830 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
3831 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
3832 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
3833 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
3834 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
3835 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
3836 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
3837 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
3838 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
3839 ; GFX11-CU-NEXT: buffer_gl0_inv
3840 ; GFX11-CU-NEXT: buffer_gl1_inv
3841 ; GFX11-CU-NEXT: s_endpgm
3899 ; GFX10-CU-LABEL: global_system_seq_cst_acquire_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], 0x8
3903 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
3904 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
3905 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
3906 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
3907 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
3908 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
3909 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
3910 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
3911 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
3912 ; GFX10-CU-NEXT: buffer_gl0_inv
3913 ; GFX10-CU-NEXT: buffer_gl1_inv
3914 ; GFX10-CU-NEXT: s_endpgm
4004 ; GFX11-CU-LABEL: global_system_seq_cst_acquire_cmpxchg:
4005 ; GFX11-CU: ; %bb.0: ; %entry
4006 ; GFX11-CU-NEXT: s_clause 0x1
4007 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
4008 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
4009 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
4010 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
4011 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
4012 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
4013 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
4014 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
4015 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
4016 ; GFX11-CU-NEXT: buffer_gl0_inv
4017 ; GFX11-CU-NEXT: buffer_gl1_inv
4018 ; GFX11-CU-NEXT: s_endpgm
4076 ; GFX10-CU-LABEL: global_system_seq_cst_seq_cst_cmpxchg:
4077 ; GFX10-CU: ; %bb.0: ; %entry
4078 ; GFX10-CU-NEXT: s_clause 0x1
4079 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
4080 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
4081 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
4082 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
4083 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
4084 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
4085 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
4086 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
4087 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
4088 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
4089 ; GFX10-CU-NEXT: buffer_gl0_inv
4090 ; GFX10-CU-NEXT: buffer_gl1_inv
4091 ; GFX10-CU-NEXT: s_endpgm
4181 ; GFX11-CU-LABEL: global_system_seq_cst_seq_cst_cmpxchg:
4182 ; GFX11-CU: ; %bb.0: ; %entry
4183 ; GFX11-CU-NEXT: s_clause 0x1
4184 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
4185 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
4186 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
4187 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
4188 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
4189 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
4190 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
4191 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
4192 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
4193 ; GFX11-CU-NEXT: buffer_gl0_inv
4194 ; GFX11-CU-NEXT: buffer_gl1_inv
4195 ; GFX11-CU-NEXT: s_endpgm
4250 ; GFX10-CU-LABEL: global_system_monotonic_monotonic_ret_cmpxchg:
4251 ; GFX10-CU: ; %bb.0: ; %entry
4252 ; GFX10-CU-NEXT: s_clause 0x1
4253 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
4254 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
4255 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
4256 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
4257 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
4258 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
4259 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
4260 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
4261 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
4262 ; GFX10-CU-NEXT: s_endpgm
4340 ; GFX11-CU-LABEL: global_system_monotonic_monotonic_ret_cmpxchg:
4341 ; GFX11-CU: ; %bb.0: ; %entry
4342 ; GFX11-CU-NEXT: s_clause 0x1
4343 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
4344 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
4345 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
4346 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
4347 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
4348 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
4349 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
4350 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
4351 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
4352 ; GFX11-CU-NEXT: s_endpgm
4413 ; GFX10-CU-LABEL: global_system_acquire_monotonic_ret_cmpxchg:
4414 ; GFX10-CU: ; %bb.0: ; %entry
4415 ; GFX10-CU-NEXT: s_clause 0x1
4416 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
4417 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
4418 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
4419 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
4420 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
4421 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
4422 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
4423 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
4424 ; GFX10-CU-NEXT: buffer_gl0_inv
4425 ; GFX10-CU-NEXT: buffer_gl1_inv
4426 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
4427 ; GFX10-CU-NEXT: s_endpgm
4513 ; GFX11-CU-LABEL: global_system_acquire_monotonic_ret_cmpxchg:
4514 ; GFX11-CU: ; %bb.0: ; %entry
4515 ; GFX11-CU-NEXT: s_clause 0x1
4516 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
4517 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
4518 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
4519 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
4520 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
4521 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
4522 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
4523 ; GFX11-CU-NEXT: buffer_gl0_inv
4524 ; GFX11-CU-NEXT: buffer_gl1_inv
4525 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
4526 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
4527 ; GFX11-CU-NEXT: s_endpgm
4592 ; GFX10-CU-LABEL: global_system_acq_rel_monotonic_ret_cmpxchg:
4593 ; GFX10-CU: ; %bb.0: ; %entry
4594 ; GFX10-CU-NEXT: s_clause 0x1
4595 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
4596 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
4597 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
4598 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
4599 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
4600 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
4601 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
4602 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
4603 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
4604 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
4605 ; GFX10-CU-NEXT: buffer_gl0_inv
4606 ; GFX10-CU-NEXT: buffer_gl1_inv
4607 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
4608 ; GFX10-CU-NEXT: s_endpgm
4705 ; GFX11-CU-LABEL: global_system_acq_rel_monotonic_ret_cmpxchg:
4706 ; GFX11-CU: ; %bb.0: ; %entry
4707 ; GFX11-CU-NEXT: s_clause 0x1
4708 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
4709 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
4710 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
4711 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
4712 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
4713 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
4714 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
4715 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
4716 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
4717 ; GFX11-CU-NEXT: buffer_gl0_inv
4718 ; GFX11-CU-NEXT: buffer_gl1_inv
4719 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
4720 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
4721 ; GFX11-CU-NEXT: s_endpgm
4786 ; GFX10-CU-LABEL: global_system_seq_cst_monotonic_ret_cmpxchg:
4787 ; GFX10-CU: ; %bb.0: ; %entry
4788 ; GFX10-CU-NEXT: s_clause 0x1
4789 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
4790 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
4791 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
4792 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
4793 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
4794 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
4795 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
4796 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
4797 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
4798 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
4799 ; GFX10-CU-NEXT: buffer_gl0_inv
4800 ; GFX10-CU-NEXT: buffer_gl1_inv
4801 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
4802 ; GFX10-CU-NEXT: s_endpgm
4899 ; GFX11-CU-LABEL: global_system_seq_cst_monotonic_ret_cmpxchg:
4900 ; GFX11-CU: ; %bb.0: ; %entry
4901 ; GFX11-CU-NEXT: s_clause 0x1
4902 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
4903 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
4904 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
4905 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
4906 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
4907 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
4908 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
4909 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
4910 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
4911 ; GFX11-CU-NEXT: buffer_gl0_inv
4912 ; GFX11-CU-NEXT: buffer_gl1_inv
4913 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
4914 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
4915 ; GFX11-CU-NEXT: s_endpgm
4976 ; GFX10-CU-LABEL: global_system_monotonic_acquire_ret_cmpxchg:
4977 ; GFX10-CU: ; %bb.0: ; %entry
4978 ; GFX10-CU-NEXT: s_clause 0x1
4979 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
4980 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
4981 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
4982 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
4983 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
4984 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
4985 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
4986 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
4987 ; GFX10-CU-NEXT: buffer_gl0_inv
4988 ; GFX10-CU-NEXT: buffer_gl1_inv
4989 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
4990 ; GFX10-CU-NEXT: s_endpgm
5076 ; GFX11-CU-LABEL: global_system_monotonic_acquire_ret_cmpxchg:
5077 ; GFX11-CU: ; %bb.0: ; %entry
5078 ; GFX11-CU-NEXT: s_clause 0x1
5079 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
5080 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
5081 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
5082 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
5083 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
5084 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
5085 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
5086 ; GFX11-CU-NEXT: buffer_gl0_inv
5087 ; GFX11-CU-NEXT: buffer_gl1_inv
5088 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
5089 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
5090 ; GFX11-CU-NEXT: s_endpgm
5151 ; GFX10-CU-LABEL: global_system_acquire_acquire_ret_cmpxchg:
5152 ; GFX10-CU: ; %bb.0: ; %entry
5153 ; GFX10-CU-NEXT: s_clause 0x1
5154 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
5155 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
5156 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
5157 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
5158 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
5159 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
5160 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
5161 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
5162 ; GFX10-CU-NEXT: buffer_gl0_inv
5163 ; GFX10-CU-NEXT: buffer_gl1_inv
5164 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
5165 ; GFX10-CU-NEXT: s_endpgm
5251 ; GFX11-CU-LABEL: global_system_acquire_acquire_ret_cmpxchg:
5252 ; GFX11-CU: ; %bb.0: ; %entry
5253 ; GFX11-CU-NEXT: s_clause 0x1
5254 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
5255 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
5256 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
5257 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
5258 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
5259 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
5260 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
5261 ; GFX11-CU-NEXT: buffer_gl0_inv
5262 ; GFX11-CU-NEXT: buffer_gl1_inv
5263 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
5264 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
5265 ; GFX11-CU-NEXT: s_endpgm
5330 ; GFX10-CU-LABEL: global_system_release_acquire_ret_cmpxchg:
5331 ; GFX10-CU: ; %bb.0: ; %entry
5332 ; GFX10-CU-NEXT: s_clause 0x1
5333 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
5334 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
5335 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
5336 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
5337 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
5338 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
5339 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
5340 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
5341 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
5342 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
5343 ; GFX10-CU-NEXT: buffer_gl0_inv
5344 ; GFX10-CU-NEXT: buffer_gl1_inv
5345 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
5346 ; GFX10-CU-NEXT: s_endpgm
5443 ; GFX11-CU-LABEL: global_system_release_acquire_ret_cmpxchg:
5444 ; GFX11-CU: ; %bb.0: ; %entry
5445 ; GFX11-CU-NEXT: s_clause 0x1
5446 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
5447 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
5448 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
5449 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
5450 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
5451 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
5452 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
5453 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
5454 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
5455 ; GFX11-CU-NEXT: buffer_gl0_inv
5456 ; GFX11-CU-NEXT: buffer_gl1_inv
5457 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
5458 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
5459 ; GFX11-CU-NEXT: s_endpgm
5524 ; GFX10-CU-LABEL: global_system_acq_rel_acquire_ret_cmpxchg:
5525 ; GFX10-CU: ; %bb.0: ; %entry
5526 ; GFX10-CU-NEXT: s_clause 0x1
5527 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
5528 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
5529 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
5530 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
5531 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
5532 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
5533 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
5534 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
5535 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
5536 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
5537 ; GFX10-CU-NEXT: buffer_gl0_inv
5538 ; GFX10-CU-NEXT: buffer_gl1_inv
5539 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
5540 ; GFX10-CU-NEXT: s_endpgm
5637 ; GFX11-CU-LABEL: global_system_acq_rel_acquire_ret_cmpxchg:
5638 ; GFX11-CU: ; %bb.0: ; %entry
5639 ; GFX11-CU-NEXT: s_clause 0x1
5640 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
5641 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
5642 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
5643 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
5644 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
5645 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
5646 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
5647 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
5648 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
5649 ; GFX11-CU-NEXT: buffer_gl0_inv
5650 ; GFX11-CU-NEXT: buffer_gl1_inv
5651 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
5652 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
5653 ; GFX11-CU-NEXT: s_endpgm
5718 ; GFX10-CU-LABEL: global_system_seq_cst_acquire_ret_cmpxchg:
5719 ; GFX10-CU: ; %bb.0: ; %entry
5720 ; GFX10-CU-NEXT: s_clause 0x1
5721 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
5722 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
5723 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
5724 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
5725 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
5726 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
5727 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
5728 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
5729 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
5730 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
5731 ; GFX10-CU-NEXT: buffer_gl0_inv
5732 ; GFX10-CU-NEXT: buffer_gl1_inv
5733 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
5734 ; GFX10-CU-NEXT: s_endpgm
5831 ; GFX11-CU-LABEL: global_system_seq_cst_acquire_ret_cmpxchg:
5832 ; GFX11-CU: ; %bb.0: ; %entry
5833 ; GFX11-CU-NEXT: s_clause 0x1
5834 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
5835 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
5836 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
5837 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
5838 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
5839 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
5840 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
5841 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
5842 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
5843 ; GFX11-CU-NEXT: buffer_gl0_inv
5844 ; GFX11-CU-NEXT: buffer_gl1_inv
5845 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
5846 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
5847 ; GFX11-CU-NEXT: s_endpgm
5912 ; GFX10-CU-LABEL: global_system_monotonic_seq_cst_ret_cmpxchg:
5913 ; GFX10-CU: ; %bb.0: ; %entry
5914 ; GFX10-CU-NEXT: s_clause 0x1
5915 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
5916 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
5917 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
5918 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
5919 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
5920 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
5921 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
5922 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
5923 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
5924 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
5925 ; GFX10-CU-NEXT: buffer_gl0_inv
5926 ; GFX10-CU-NEXT: buffer_gl1_inv
5927 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
5928 ; GFX10-CU-NEXT: s_endpgm
6025 ; GFX11-CU-LABEL: global_system_monotonic_seq_cst_ret_cmpxchg:
6026 ; GFX11-CU: ; %bb.0: ; %entry
6027 ; GFX11-CU-NEXT: s_clause 0x1
6028 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
6029 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
6030 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
6031 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
6032 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
6033 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6034 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
6035 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
6036 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
6037 ; GFX11-CU-NEXT: buffer_gl0_inv
6038 ; GFX11-CU-NEXT: buffer_gl1_inv
6039 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
6040 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
6041 ; GFX11-CU-NEXT: s_endpgm
6106 ; GFX10-CU-LABEL: global_system_acquire_seq_cst_ret_cmpxchg:
6107 ; GFX10-CU: ; %bb.0: ; %entry
6108 ; GFX10-CU-NEXT: s_clause 0x1
6109 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
6110 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
6111 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
6112 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
6113 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
6114 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
6115 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6116 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
6117 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
6118 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
6119 ; GFX10-CU-NEXT: buffer_gl0_inv
6120 ; GFX10-CU-NEXT: buffer_gl1_inv
6121 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
6122 ; GFX10-CU-NEXT: s_endpgm
6219 ; GFX11-CU-LABEL: global_system_acquire_seq_cst_ret_cmpxchg:
6220 ; GFX11-CU: ; %bb.0: ; %entry
6221 ; GFX11-CU-NEXT: s_clause 0x1
6222 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
6223 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
6224 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
6225 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
6226 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
6227 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6228 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
6229 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
6230 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
6231 ; GFX11-CU-NEXT: buffer_gl0_inv
6232 ; GFX11-CU-NEXT: buffer_gl1_inv
6233 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
6234 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
6235 ; GFX11-CU-NEXT: s_endpgm
6300 ; GFX10-CU-LABEL: global_system_relese_seq_cst_ret_cmpxchg:
6301 ; GFX10-CU: ; %bb.0: ; %entry
6302 ; GFX10-CU-NEXT: s_clause 0x1
6303 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
6304 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
6305 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
6306 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
6307 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
6308 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
6309 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6310 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
6311 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
6312 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
6313 ; GFX10-CU-NEXT: buffer_gl0_inv
6314 ; GFX10-CU-NEXT: buffer_gl1_inv
6315 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
6316 ; GFX10-CU-NEXT: s_endpgm
6413 ; GFX11-CU-LABEL: global_system_relese_seq_cst_ret_cmpxchg:
6414 ; GFX11-CU: ; %bb.0: ; %entry
6415 ; GFX11-CU-NEXT: s_clause 0x1
6416 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
6417 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
6418 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
6419 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
6420 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
6421 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6422 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
6423 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
6424 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
6425 ; GFX11-CU-NEXT: buffer_gl0_inv
6426 ; GFX11-CU-NEXT: buffer_gl1_inv
6427 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
6428 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
6429 ; GFX11-CU-NEXT: s_endpgm
6494 ; GFX10-CU-LABEL: global_system_acq_rel_seq_cst_ret_cmpxchg:
6495 ; GFX10-CU: ; %bb.0: ; %entry
6496 ; GFX10-CU-NEXT: s_clause 0x1
6497 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
6498 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
6499 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
6500 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
6501 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
6502 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
6503 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6504 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
6505 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
6506 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
6507 ; GFX10-CU-NEXT: buffer_gl0_inv
6508 ; GFX10-CU-NEXT: buffer_gl1_inv
6509 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
6510 ; GFX10-CU-NEXT: s_endpgm
6607 ; GFX11-CU-LABEL: global_system_acq_rel_seq_cst_ret_cmpxchg:
6608 ; GFX11-CU: ; %bb.0: ; %entry
6609 ; GFX11-CU-NEXT: s_clause 0x1
6610 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
6611 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
6612 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
6613 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
6614 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
6615 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6616 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
6617 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
6618 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
6619 ; GFX11-CU-NEXT: buffer_gl0_inv
6620 ; GFX11-CU-NEXT: buffer_gl1_inv
6621 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
6622 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
6623 ; GFX11-CU-NEXT: s_endpgm
6688 ; GFX10-CU-LABEL: global_system_seq_cst_seq_cst_ret_cmpxchg:
6689 ; GFX10-CU: ; %bb.0: ; %entry
6690 ; GFX10-CU-NEXT: s_clause 0x1
6691 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
6692 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
6693 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
6694 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
6695 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
6696 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
6697 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6698 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
6699 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
6700 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
6701 ; GFX10-CU-NEXT: buffer_gl0_inv
6702 ; GFX10-CU-NEXT: buffer_gl1_inv
6703 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
6704 ; GFX10-CU-NEXT: s_endpgm
6801 ; GFX11-CU-LABEL: global_system_seq_cst_seq_cst_ret_cmpxchg:
6802 ; GFX11-CU: ; %bb.0: ; %entry
6803 ; GFX11-CU-NEXT: s_clause 0x1
6804 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
6805 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
6806 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
6807 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
6808 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
6809 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
6810 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
6811 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
6812 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
6813 ; GFX11-CU-NEXT: buffer_gl0_inv
6814 ; GFX11-CU-NEXT: buffer_gl1_inv
6815 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
6816 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
6817 ; GFX11-CU-NEXT: s_endpgm
6866 ; GFX10-CU-LABEL: global_system_one_as_unordered_load:
6867 ; GFX10-CU: ; %bb.0: ; %entry
6868 ; GFX10-CU-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
6869 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
6870 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
6871 ; GFX10-CU-NEXT: global_load_dword v1, v0, s[0:1]
6872 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
6873 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[2:3]
6874 ; GFX10-CU-NEXT: s_endpgm
6942 ; GFX11-CU-LABEL: global_system_one_as_unordered_load:
6943 ; GFX11-CU: ; %bb.0: ; %entry
6944 ; GFX11-CU-NEXT: s_load_b128 s[0:3], s[0:1], 0x0
6945 ; GFX11-CU-NEXT: v_mov_b32_e32 v0, 0
6946 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
6947 ; GFX11-CU-NEXT: global_load_b32 v1, v0, s[0:1]
6948 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
6949 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
6950 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
6951 ; GFX11-CU-NEXT: s_endpgm
6998 ; GFX10-CU-LABEL: global_system_one_as_monotonic_load:
6999 ; GFX10-CU: ; %bb.0: ; %entry
7000 ; GFX10-CU-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
7001 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
7002 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
7003 ; GFX10-CU-NEXT: global_load_dword v1, v0, s[0:1] glc dlc
7004 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
7005 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[2:3]
7006 ; GFX10-CU-NEXT: s_endpgm
7074 ; GFX11-CU-LABEL: global_system_one_as_monotonic_load:
7075 ; GFX11-CU: ; %bb.0: ; %entry
7076 ; GFX11-CU-NEXT: s_load_b128 s[0:3], s[0:1], 0x0
7077 ; GFX11-CU-NEXT: v_mov_b32_e32 v0, 0
7078 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
7079 ; GFX11-CU-NEXT: global_load_b32 v1, v0, s[0:1] glc
7080 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
7081 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
7082 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
7083 ; GFX11-CU-NEXT: s_endpgm
7134 ; GFX10-CU-LABEL: global_system_one_as_acquire_load:
7135 ; GFX10-CU: ; %bb.0: ; %entry
7136 ; GFX10-CU-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
7137 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
7138 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
7139 ; GFX10-CU-NEXT: global_load_dword v1, v0, s[0:1] glc dlc
7140 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
7141 ; GFX10-CU-NEXT: buffer_gl0_inv
7142 ; GFX10-CU-NEXT: buffer_gl1_inv
7143 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[2:3]
7144 ; GFX10-CU-NEXT: s_endpgm
7220 ; GFX11-CU-LABEL: global_system_one_as_acquire_load:
7221 ; GFX11-CU: ; %bb.0: ; %entry
7222 ; GFX11-CU-NEXT: s_load_b128 s[0:3], s[0:1], 0x0
7223 ; GFX11-CU-NEXT: v_mov_b32_e32 v0, 0
7224 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
7225 ; GFX11-CU-NEXT: global_load_b32 v1, v0, s[0:1] glc
7226 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
7227 ; GFX11-CU-NEXT: buffer_gl0_inv
7228 ; GFX11-CU-NEXT: buffer_gl1_inv
7229 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
7230 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
7231 ; GFX11-CU-NEXT: s_endpgm
7285 ; GFX10-CU-LABEL: global_system_one_as_seq_cst_load:
7286 ; GFX10-CU: ; %bb.0: ; %entry
7287 ; GFX10-CU-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
7288 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
7289 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
7290 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
7291 ; GFX10-CU-NEXT: global_load_dword v1, v0, s[0:1] glc dlc
7292 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
7293 ; GFX10-CU-NEXT: buffer_gl0_inv
7294 ; GFX10-CU-NEXT: buffer_gl1_inv
7295 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[2:3]
7296 ; GFX10-CU-NEXT: s_endpgm
7374 ; GFX11-CU-LABEL: global_system_one_as_seq_cst_load:
7375 ; GFX11-CU: ; %bb.0: ; %entry
7376 ; GFX11-CU-NEXT: s_load_b128 s[0:3], s[0:1], 0x0
7377 ; GFX11-CU-NEXT: v_mov_b32_e32 v0, 0
7378 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
7379 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
7380 ; GFX11-CU-NEXT: global_load_b32 v1, v0, s[0:1] glc
7381 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
7382 ; GFX11-CU-NEXT: buffer_gl0_inv
7383 ; GFX11-CU-NEXT: buffer_gl1_inv
7384 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
7385 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
7386 ; GFX11-CU-NEXT: s_endpgm
7428 ; GFX10-CU-LABEL: global_system_one_as_unordered_store:
7429 ; GFX10-CU: ; %bb.0: ; %entry
7430 ; GFX10-CU-NEXT: s_clause 0x1
7431 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x0
7432 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
7433 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
7434 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
7435 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
7436 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
7437 ; GFX10-CU-NEXT: s_endpgm
7501 ; GFX11-CU-LABEL: global_system_one_as_unordered_store:
7502 ; GFX11-CU: ; %bb.0: ; %entry
7503 ; GFX11-CU-NEXT: s_clause 0x1
7504 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x0
7505 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
7506 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
7507 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
7508 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
7509 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
7510 ; GFX11-CU-NEXT: s_endpgm
7551 ; GFX10-CU-LABEL: global_system_one_as_monotonic_store:
7552 ; GFX10-CU: ; %bb.0: ; %entry
7553 ; GFX10-CU-NEXT: s_clause 0x1
7554 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x0
7555 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
7556 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
7557 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
7558 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
7559 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
7560 ; GFX10-CU-NEXT: s_endpgm
7624 ; GFX11-CU-LABEL: global_system_one_as_monotonic_store:
7625 ; GFX11-CU: ; %bb.0: ; %entry
7626 ; GFX11-CU-NEXT: s_clause 0x1
7627 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x0
7628 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
7629 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
7630 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
7631 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
7632 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
7633 ; GFX11-CU-NEXT: s_endpgm
7678 ; GFX10-CU-LABEL: global_system_one_as_release_store:
7679 ; GFX10-CU: ; %bb.0: ; %entry
7680 ; GFX10-CU-NEXT: s_clause 0x1
7681 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x0
7682 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
7683 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
7684 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
7685 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
7686 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
7687 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
7688 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
7689 ; GFX10-CU-NEXT: s_endpgm
7764 ; GFX11-CU-LABEL: global_system_one_as_release_store:
7765 ; GFX11-CU: ; %bb.0: ; %entry
7766 ; GFX11-CU-NEXT: s_clause 0x1
7767 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x0
7768 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
7769 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
7770 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
7771 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
7772 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
7773 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
7774 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
7775 ; GFX11-CU-NEXT: s_endpgm
7820 ; GFX10-CU-LABEL: global_system_one_as_seq_cst_store:
7821 ; GFX10-CU: ; %bb.0: ; %entry
7822 ; GFX10-CU-NEXT: s_clause 0x1
7823 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x0
7824 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
7825 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
7826 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
7827 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
7828 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
7829 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
7830 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
7831 ; GFX10-CU-NEXT: s_endpgm
7906 ; GFX11-CU-LABEL: global_system_one_as_seq_cst_store:
7907 ; GFX11-CU: ; %bb.0: ; %entry
7908 ; GFX11-CU-NEXT: s_clause 0x1
7909 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x0
7910 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
7911 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
7912 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
7913 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
7914 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
7915 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
7916 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
7917 ; GFX11-CU-NEXT: s_endpgm
7958 ; GFX10-CU-LABEL: global_system_one_as_monotonic_atomicrmw:
7959 ; GFX10-CU: ; %bb.0: ; %entry
7960 ; GFX10-CU-NEXT: s_clause 0x1
7961 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
7962 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
7963 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
7964 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
7965 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
7966 ; GFX10-CU-NEXT: global_atomic_swap v0, v1, s[0:1]
7967 ; GFX10-CU-NEXT: s_endpgm
8031 ; GFX11-CU-LABEL: global_system_one_as_monotonic_atomicrmw:
8032 ; GFX11-CU: ; %bb.0: ; %entry
8033 ; GFX11-CU-NEXT: s_clause 0x1
8034 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
8035 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
8036 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
8037 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
8038 ; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
8039 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
8040 ; GFX11-CU-NEXT: s_endpgm
8088 ; GFX10-CU-LABEL: global_system_one_as_acquire_atomicrmw:
8089 ; GFX10-CU: ; %bb.0: ; %entry
8090 ; GFX10-CU-NEXT: s_clause 0x1
8091 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
8092 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
8093 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
8094 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
8095 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
8096 ; GFX10-CU-NEXT: global_atomic_swap v0, v1, s[0:1]
8097 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
8098 ; GFX10-CU-NEXT: buffer_gl0_inv
8099 ; GFX10-CU-NEXT: buffer_gl1_inv
8100 ; GFX10-CU-NEXT: s_endpgm
8177 ; GFX11-CU-LABEL: global_system_one_as_acquire_atomicrmw:
8178 ; GFX11-CU: ; %bb.0: ; %entry
8179 ; GFX11-CU-NEXT: s_clause 0x1
8180 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
8181 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
8182 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
8183 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
8184 ; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
8185 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
8186 ; GFX11-CU-NEXT: buffer_gl0_inv
8187 ; GFX11-CU-NEXT: buffer_gl1_inv
8188 ; GFX11-CU-NEXT: s_endpgm
8233 ; GFX10-CU-LABEL: global_system_one_as_release_atomicrmw:
8234 ; GFX10-CU: ; %bb.0: ; %entry
8235 ; GFX10-CU-NEXT: s_clause 0x1
8236 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
8237 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
8238 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
8239 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
8240 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
8241 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
8242 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
8243 ; GFX10-CU-NEXT: global_atomic_swap v0, v1, s[0:1]
8244 ; GFX10-CU-NEXT: s_endpgm
8319 ; GFX11-CU-LABEL: global_system_one_as_release_atomicrmw:
8320 ; GFX11-CU: ; %bb.0: ; %entry
8321 ; GFX11-CU-NEXT: s_clause 0x1
8322 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
8323 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
8324 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
8325 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
8326 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
8327 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
8328 ; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
8329 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
8330 ; GFX11-CU-NEXT: s_endpgm
8382 ; GFX10-CU-LABEL: global_system_one_as_acq_rel_atomicrmw:
8383 ; GFX10-CU: ; %bb.0: ; %entry
8384 ; GFX10-CU-NEXT: s_clause 0x1
8385 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
8386 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
8387 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
8388 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
8389 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
8390 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
8391 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
8392 ; GFX10-CU-NEXT: global_atomic_swap v0, v1, s[0:1]
8393 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
8394 ; GFX10-CU-NEXT: buffer_gl0_inv
8395 ; GFX10-CU-NEXT: buffer_gl1_inv
8396 ; GFX10-CU-NEXT: s_endpgm
8484 ; GFX11-CU-LABEL: global_system_one_as_acq_rel_atomicrmw:
8485 ; GFX11-CU: ; %bb.0: ; %entry
8486 ; GFX11-CU-NEXT: s_clause 0x1
8487 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
8488 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
8489 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
8490 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
8491 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
8492 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
8493 ; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
8494 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
8495 ; GFX11-CU-NEXT: buffer_gl0_inv
8496 ; GFX11-CU-NEXT: buffer_gl1_inv
8497 ; GFX11-CU-NEXT: s_endpgm
8549 ; GFX10-CU-LABEL: global_system_one_as_seq_cst_atomicrmw:
8550 ; GFX10-CU: ; %bb.0: ; %entry
8551 ; GFX10-CU-NEXT: s_clause 0x1
8552 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
8553 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
8554 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
8555 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
8556 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
8557 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
8558 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
8559 ; GFX10-CU-NEXT: global_atomic_swap v0, v1, s[0:1]
8560 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
8561 ; GFX10-CU-NEXT: buffer_gl0_inv
8562 ; GFX10-CU-NEXT: buffer_gl1_inv
8563 ; GFX10-CU-NEXT: s_endpgm
8651 ; GFX11-CU-LABEL: global_system_one_as_seq_cst_atomicrmw:
8652 ; GFX11-CU: ; %bb.0: ; %entry
8653 ; GFX11-CU-NEXT: s_clause 0x1
8654 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
8655 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
8656 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
8657 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
8658 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
8659 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
8660 ; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
8661 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
8662 ; GFX11-CU-NEXT: buffer_gl0_inv
8663 ; GFX11-CU-NEXT: buffer_gl1_inv
8664 ; GFX11-CU-NEXT: s_endpgm
8715 ; GFX10-CU-LABEL: global_system_one_as_acquire_ret_atomicrmw:
8716 ; GFX10-CU: ; %bb.0: ; %entry
8717 ; GFX10-CU-NEXT: s_clause 0x1
8718 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
8719 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
8720 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
8721 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
8722 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
8723 ; GFX10-CU-NEXT: global_atomic_swap v1, v0, v1, s[0:1] glc
8724 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
8725 ; GFX10-CU-NEXT: buffer_gl0_inv
8726 ; GFX10-CU-NEXT: buffer_gl1_inv
8727 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
8728 ; GFX10-CU-NEXT: s_endpgm
8812 ; GFX11-CU-LABEL: global_system_one_as_acquire_ret_atomicrmw:
8813 ; GFX11-CU: ; %bb.0: ; %entry
8814 ; GFX11-CU-NEXT: s_clause 0x1
8815 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
8816 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
8817 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
8818 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
8819 ; GFX11-CU-NEXT: global_atomic_swap_b32 v1, v0, v1, s[0:1] glc
8820 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
8821 ; GFX11-CU-NEXT: buffer_gl0_inv
8822 ; GFX11-CU-NEXT: buffer_gl1_inv
8823 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
8824 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
8825 ; GFX11-CU-NEXT: s_endpgm
8881 ; GFX10-CU-LABEL: global_system_one_as_acq_rel_ret_atomicrmw:
8882 ; GFX10-CU: ; %bb.0: ; %entry
8883 ; GFX10-CU-NEXT: s_clause 0x1
8884 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
8885 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
8886 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
8887 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
8888 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
8889 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
8890 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
8891 ; GFX10-CU-NEXT: global_atomic_swap v1, v0, v1, s[0:1] glc
8892 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
8893 ; GFX10-CU-NEXT: buffer_gl0_inv
8894 ; GFX10-CU-NEXT: buffer_gl1_inv
8895 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
8896 ; GFX10-CU-NEXT: s_endpgm
8991 ; GFX11-CU-LABEL: global_system_one_as_acq_rel_ret_atomicrmw:
8992 ; GFX11-CU: ; %bb.0: ; %entry
8993 ; GFX11-CU-NEXT: s_clause 0x1
8994 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
8995 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
8996 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
8997 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
8998 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
8999 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
9000 ; GFX11-CU-NEXT: global_atomic_swap_b32 v1, v0, v1, s[0:1] glc
9001 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
9002 ; GFX11-CU-NEXT: buffer_gl0_inv
9003 ; GFX11-CU-NEXT: buffer_gl1_inv
9004 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
9005 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
9006 ; GFX11-CU-NEXT: s_endpgm
9062 ; GFX10-CU-LABEL: global_system_one_as_seq_cst_ret_atomicrmw:
9063 ; GFX10-CU: ; %bb.0: ; %entry
9064 ; GFX10-CU-NEXT: s_clause 0x1
9065 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
9066 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
9067 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
9068 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
9069 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
9070 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
9071 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
9072 ; GFX10-CU-NEXT: global_atomic_swap v1, v0, v1, s[0:1] glc
9073 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
9074 ; GFX10-CU-NEXT: buffer_gl0_inv
9075 ; GFX10-CU-NEXT: buffer_gl1_inv
9076 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
9077 ; GFX10-CU-NEXT: s_endpgm
9172 ; GFX11-CU-LABEL: global_system_one_as_seq_cst_ret_atomicrmw:
9173 ; GFX11-CU: ; %bb.0: ; %entry
9174 ; GFX11-CU-NEXT: s_clause 0x1
9175 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
9176 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
9177 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
9178 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
9179 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
9180 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
9181 ; GFX11-CU-NEXT: global_atomic_swap_b32 v1, v0, v1, s[0:1] glc
9182 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
9183 ; GFX11-CU-NEXT: buffer_gl0_inv
9184 ; GFX11-CU-NEXT: buffer_gl1_inv
9185 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
9186 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
9187 ; GFX11-CU-NEXT: s_endpgm
9234 ; GFX10-CU-LABEL: global_system_one_as_monotonic_monotonic_cmpxchg:
9235 ; GFX10-CU: ; %bb.0: ; %entry
9236 ; GFX10-CU-NEXT: s_clause 0x1
9237 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
9238 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
9239 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
9240 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
9241 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
9242 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
9243 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
9244 ; GFX10-CU-NEXT: s_endpgm
9310 ; GFX11-CU-LABEL: global_system_one_as_monotonic_monotonic_cmpxchg:
9311 ; GFX11-CU: ; %bb.0: ; %entry
9312 ; GFX11-CU-NEXT: s_clause 0x1
9313 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
9314 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
9315 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
9316 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
9317 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
9318 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
9319 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
9320 ; GFX11-CU-NEXT: s_endpgm
9374 ; GFX10-CU-LABEL: global_system_one_as_acquire_monotonic_cmpxchg:
9375 ; GFX10-CU: ; %bb.0: ; %entry
9376 ; GFX10-CU-NEXT: s_clause 0x1
9377 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
9378 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
9379 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
9380 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
9381 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
9382 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
9383 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
9384 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
9385 ; GFX10-CU-NEXT: buffer_gl0_inv
9386 ; GFX10-CU-NEXT: buffer_gl1_inv
9387 ; GFX10-CU-NEXT: s_endpgm
9466 ; GFX11-CU-LABEL: global_system_one_as_acquire_monotonic_cmpxchg:
9467 ; GFX11-CU: ; %bb.0: ; %entry
9468 ; GFX11-CU-NEXT: s_clause 0x1
9469 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
9470 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
9471 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
9472 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
9473 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
9474 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
9475 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
9476 ; GFX11-CU-NEXT: buffer_gl0_inv
9477 ; GFX11-CU-NEXT: buffer_gl1_inv
9478 ; GFX11-CU-NEXT: s_endpgm
9529 ; GFX10-CU-LABEL: global_system_one_as_release_monotonic_cmpxchg:
9530 ; GFX10-CU: ; %bb.0: ; %entry
9531 ; GFX10-CU-NEXT: s_clause 0x1
9532 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
9533 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
9534 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
9535 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
9536 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
9537 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
9538 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
9539 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
9540 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
9541 ; GFX10-CU-NEXT: s_endpgm
9618 ; GFX11-CU-LABEL: global_system_one_as_release_monotonic_cmpxchg:
9619 ; GFX11-CU: ; %bb.0: ; %entry
9620 ; GFX11-CU-NEXT: s_clause 0x1
9621 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
9622 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
9623 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
9624 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
9625 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
9626 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
9627 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
9628 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
9629 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
9630 ; GFX11-CU-NEXT: s_endpgm
9688 ; GFX10-CU-LABEL: global_system_one_as_acq_rel_monotonic_cmpxchg:
9689 ; GFX10-CU: ; %bb.0: ; %entry
9690 ; GFX10-CU-NEXT: s_clause 0x1
9691 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
9692 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
9693 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
9694 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
9695 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
9696 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
9697 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
9698 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
9699 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
9700 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
9701 ; GFX10-CU-NEXT: buffer_gl0_inv
9702 ; GFX10-CU-NEXT: buffer_gl1_inv
9703 ; GFX10-CU-NEXT: s_endpgm
9793 ; GFX11-CU-LABEL: global_system_one_as_acq_rel_monotonic_cmpxchg:
9794 ; GFX11-CU: ; %bb.0: ; %entry
9795 ; GFX11-CU-NEXT: s_clause 0x1
9796 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
9797 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
9798 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
9799 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
9800 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
9801 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
9802 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
9803 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
9804 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
9805 ; GFX11-CU-NEXT: buffer_gl0_inv
9806 ; GFX11-CU-NEXT: buffer_gl1_inv
9807 ; GFX11-CU-NEXT: s_endpgm
9865 ; GFX10-CU-LABEL: global_system_one_as_seq_cst_monotonic_cmpxchg:
9866 ; GFX10-CU: ; %bb.0: ; %entry
9867 ; GFX10-CU-NEXT: s_clause 0x1
9868 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
9869 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
9870 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
9871 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
9872 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
9873 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
9874 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
9875 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
9876 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
9877 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
9878 ; GFX10-CU-NEXT: buffer_gl0_inv
9879 ; GFX10-CU-NEXT: buffer_gl1_inv
9880 ; GFX10-CU-NEXT: s_endpgm
9970 ; GFX11-CU-LABEL: global_system_one_as_seq_cst_monotonic_cmpxchg:
9971 ; GFX11-CU: ; %bb.0: ; %entry
9972 ; GFX11-CU-NEXT: s_clause 0x1
9973 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
9974 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
9975 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
9976 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
9977 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
9978 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
9979 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
9980 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
9981 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
9982 ; GFX11-CU-NEXT: buffer_gl0_inv
9983 ; GFX11-CU-NEXT: buffer_gl1_inv
9984 ; GFX11-CU-NEXT: s_endpgm
10038 ; GFX10-CU-LABEL: global_system_one_as_monotonic_acquire_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], 0x8
10042 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
10043 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
10044 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
10045 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
10046 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
10047 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
10048 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
10049 ; GFX10-CU-NEXT: buffer_gl0_inv
10050 ; GFX10-CU-NEXT: buffer_gl1_inv
10051 ; GFX10-CU-NEXT: s_endpgm
10130 ; GFX11-CU-LABEL: global_system_one_as_monotonic_acquire_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], 0x8
10134 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
10135 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
10136 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
10137 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
10138 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
10139 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
10140 ; GFX11-CU-NEXT: buffer_gl0_inv
10141 ; GFX11-CU-NEXT: buffer_gl1_inv
10142 ; GFX11-CU-NEXT: s_endpgm
10196 ; GFX10-CU-LABEL: global_system_one_as_acquire_acquire_cmpxchg:
10197 ; GFX10-CU: ; %bb.0: ; %entry
10198 ; GFX10-CU-NEXT: s_clause 0x1
10199 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
10200 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
10201 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
10202 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
10203 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
10204 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
10205 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
10206 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
10207 ; GFX10-CU-NEXT: buffer_gl0_inv
10208 ; GFX10-CU-NEXT: buffer_gl1_inv
10209 ; GFX10-CU-NEXT: s_endpgm
10288 ; GFX11-CU-LABEL: global_system_one_as_acquire_acquire_cmpxchg:
10289 ; GFX11-CU: ; %bb.0: ; %entry
10290 ; GFX11-CU-NEXT: s_clause 0x1
10291 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
10292 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
10293 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
10294 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
10295 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
10296 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
10297 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
10298 ; GFX11-CU-NEXT: buffer_gl0_inv
10299 ; GFX11-CU-NEXT: buffer_gl1_inv
10300 ; GFX11-CU-NEXT: s_endpgm
10358 ; GFX10-CU-LABEL: global_system_one_as_release_acquire_cmpxchg:
10359 ; GFX10-CU: ; %bb.0: ; %entry
10360 ; GFX10-CU-NEXT: s_clause 0x1
10361 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
10362 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
10363 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
10364 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
10365 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
10366 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
10367 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
10368 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
10369 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
10370 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
10371 ; GFX10-CU-NEXT: buffer_gl0_inv
10372 ; GFX10-CU-NEXT: buffer_gl1_inv
10373 ; GFX10-CU-NEXT: s_endpgm
10463 ; GFX11-CU-LABEL: global_system_one_as_release_acquire_cmpxchg:
10464 ; GFX11-CU: ; %bb.0: ; %entry
10465 ; GFX11-CU-NEXT: s_clause 0x1
10466 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
10467 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
10468 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
10469 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
10470 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
10471 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
10472 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
10473 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
10474 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
10475 ; GFX11-CU-NEXT: buffer_gl0_inv
10476 ; GFX11-CU-NEXT: buffer_gl1_inv
10477 ; GFX11-CU-NEXT: s_endpgm
10535 ; GFX10-CU-LABEL: global_system_one_as_acq_rel_acquire_cmpxchg:
10536 ; GFX10-CU: ; %bb.0: ; %entry
10537 ; GFX10-CU-NEXT: s_clause 0x1
10538 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
10539 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
10540 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
10541 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
10542 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
10543 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
10544 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
10545 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
10546 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
10547 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
10548 ; GFX10-CU-NEXT: buffer_gl0_inv
10549 ; GFX10-CU-NEXT: buffer_gl1_inv
10550 ; GFX10-CU-NEXT: s_endpgm
10640 ; GFX11-CU-LABEL: global_system_one_as_acq_rel_acquire_cmpxchg:
10641 ; GFX11-CU: ; %bb.0: ; %entry
10642 ; GFX11-CU-NEXT: s_clause 0x1
10643 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
10644 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
10645 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
10646 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
10647 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
10648 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
10649 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
10650 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
10651 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
10652 ; GFX11-CU-NEXT: buffer_gl0_inv
10653 ; GFX11-CU-NEXT: buffer_gl1_inv
10654 ; GFX11-CU-NEXT: s_endpgm
10712 ; GFX10-CU-LABEL: global_system_one_as_seq_cst_acquire_cmpxchg:
10713 ; GFX10-CU: ; %bb.0: ; %entry
10714 ; GFX10-CU-NEXT: s_clause 0x1
10715 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
10716 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
10717 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
10718 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
10719 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
10720 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
10721 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
10722 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
10723 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
10724 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
10725 ; GFX10-CU-NEXT: buffer_gl0_inv
10726 ; GFX10-CU-NEXT: buffer_gl1_inv
10727 ; GFX10-CU-NEXT: s_endpgm
10817 ; GFX11-CU-LABEL: global_system_one_as_seq_cst_acquire_cmpxchg:
10818 ; GFX11-CU: ; %bb.0: ; %entry
10819 ; GFX11-CU-NEXT: s_clause 0x1
10820 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
10821 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
10822 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
10823 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
10824 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
10825 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
10826 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
10827 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
10828 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
10829 ; GFX11-CU-NEXT: buffer_gl0_inv
10830 ; GFX11-CU-NEXT: buffer_gl1_inv
10831 ; GFX11-CU-NEXT: s_endpgm
10889 ; GFX10-CU-LABEL: global_system_one_as_monotonic_seq_cst_cmpxchg:
10890 ; GFX10-CU: ; %bb.0: ; %entry
10891 ; GFX10-CU-NEXT: s_clause 0x1
10892 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
10893 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
10894 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
10895 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
10896 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
10897 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
10898 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
10899 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
10900 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
10901 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
10902 ; GFX10-CU-NEXT: buffer_gl0_inv
10903 ; GFX10-CU-NEXT: buffer_gl1_inv
10904 ; GFX10-CU-NEXT: s_endpgm
10994 ; GFX11-CU-LABEL: global_system_one_as_monotonic_seq_cst_cmpxchg:
10995 ; GFX11-CU: ; %bb.0: ; %entry
10996 ; GFX11-CU-NEXT: s_clause 0x1
10997 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
10998 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
10999 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
11000 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
11001 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
11002 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
11003 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
11004 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
11005 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
11006 ; GFX11-CU-NEXT: buffer_gl0_inv
11007 ; GFX11-CU-NEXT: buffer_gl1_inv
11008 ; GFX11-CU-NEXT: s_endpgm
11066 ; GFX10-CU-LABEL: global_system_one_as_acquire_seq_cst_cmpxchg:
11067 ; GFX10-CU: ; %bb.0: ; %entry
11068 ; GFX10-CU-NEXT: s_clause 0x1
11069 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
11070 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
11071 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
11072 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
11073 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
11074 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
11075 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
11076 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
11077 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
11078 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
11079 ; GFX10-CU-NEXT: buffer_gl0_inv
11080 ; GFX10-CU-NEXT: buffer_gl1_inv
11081 ; GFX10-CU-NEXT: s_endpgm
11171 ; GFX11-CU-LABEL: global_system_one_as_acquire_seq_cst_cmpxchg:
11172 ; GFX11-CU: ; %bb.0: ; %entry
11173 ; GFX11-CU-NEXT: s_clause 0x1
11174 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
11175 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
11176 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
11177 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
11178 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
11179 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
11180 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
11181 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
11182 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
11183 ; GFX11-CU-NEXT: buffer_gl0_inv
11184 ; GFX11-CU-NEXT: buffer_gl1_inv
11185 ; GFX11-CU-NEXT: s_endpgm
11243 ; GFX10-CU-LABEL: global_system_one_as_release_seq_cst_cmpxchg:
11244 ; GFX10-CU: ; %bb.0: ; %entry
11245 ; GFX10-CU-NEXT: s_clause 0x1
11246 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
11247 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
11248 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
11249 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
11250 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
11251 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
11252 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
11253 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
11254 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
11255 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
11256 ; GFX10-CU-NEXT: buffer_gl0_inv
11257 ; GFX10-CU-NEXT: buffer_gl1_inv
11258 ; GFX10-CU-NEXT: s_endpgm
11348 ; GFX11-CU-LABEL: global_system_one_as_release_seq_cst_cmpxchg:
11349 ; GFX11-CU: ; %bb.0: ; %entry
11350 ; GFX11-CU-NEXT: s_clause 0x1
11351 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
11352 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
11353 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
11354 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
11355 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
11356 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
11357 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
11358 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
11359 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
11360 ; GFX11-CU-NEXT: buffer_gl0_inv
11361 ; GFX11-CU-NEXT: buffer_gl1_inv
11362 ; GFX11-CU-NEXT: s_endpgm
11420 ; GFX10-CU-LABEL: global_system_one_as_acq_rel_seq_cst_cmpxchg:
11421 ; GFX10-CU: ; %bb.0: ; %entry
11422 ; GFX10-CU-NEXT: s_clause 0x1
11423 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
11424 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
11425 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
11426 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
11427 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
11428 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
11429 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
11430 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
11431 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
11432 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
11433 ; GFX10-CU-NEXT: buffer_gl0_inv
11434 ; GFX10-CU-NEXT: buffer_gl1_inv
11435 ; GFX10-CU-NEXT: s_endpgm
11525 ; GFX11-CU-LABEL: global_system_one_as_acq_rel_seq_cst_cmpxchg:
11526 ; GFX11-CU: ; %bb.0: ; %entry
11527 ; GFX11-CU-NEXT: s_clause 0x1
11528 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
11529 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
11530 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
11531 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
11532 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
11533 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
11534 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
11535 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
11536 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
11537 ; GFX11-CU-NEXT: buffer_gl0_inv
11538 ; GFX11-CU-NEXT: buffer_gl1_inv
11539 ; GFX11-CU-NEXT: s_endpgm
11597 ; GFX10-CU-LABEL: global_system_one_as_seq_cst_seq_cst_cmpxchg:
11598 ; GFX10-CU: ; %bb.0: ; %entry
11599 ; GFX10-CU-NEXT: s_clause 0x1
11600 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
11601 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
11602 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
11603 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
11604 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
11605 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
11606 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
11607 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
11608 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
11609 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
11610 ; GFX10-CU-NEXT: buffer_gl0_inv
11611 ; GFX10-CU-NEXT: buffer_gl1_inv
11612 ; GFX10-CU-NEXT: s_endpgm
11702 ; GFX11-CU-LABEL: global_system_one_as_seq_cst_seq_cst_cmpxchg:
11703 ; GFX11-CU: ; %bb.0: ; %entry
11704 ; GFX11-CU-NEXT: s_clause 0x1
11705 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
11706 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
11707 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
11708 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
11709 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
11710 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
11711 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
11712 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
11713 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
11714 ; GFX11-CU-NEXT: buffer_gl0_inv
11715 ; GFX11-CU-NEXT: buffer_gl1_inv
11716 ; GFX11-CU-NEXT: s_endpgm
11771 ; GFX10-CU-LABEL: global_system_one_as_monotonic_monotonic_ret_cmpxchg:
11772 ; GFX10-CU: ; %bb.0: ; %entry
11773 ; GFX10-CU-NEXT: s_clause 0x1
11774 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
11775 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
11776 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
11777 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
11778 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
11779 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
11780 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
11781 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
11782 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
11783 ; GFX10-CU-NEXT: s_endpgm
11861 ; GFX11-CU-LABEL: global_system_one_as_monotonic_monotonic_ret_cmpxchg:
11862 ; GFX11-CU: ; %bb.0: ; %entry
11863 ; GFX11-CU-NEXT: s_clause 0x1
11864 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
11865 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
11866 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
11867 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
11868 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
11869 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
11870 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
11871 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
11872 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
11873 ; GFX11-CU-NEXT: s_endpgm
11934 ; GFX10-CU-LABEL: global_system_one_as_acquire_monotonic_ret_cmpxchg:
11935 ; GFX10-CU: ; %bb.0: ; %entry
11936 ; GFX10-CU-NEXT: s_clause 0x1
11937 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
11938 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
11939 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
11940 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
11941 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
11942 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
11943 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
11944 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
11945 ; GFX10-CU-NEXT: buffer_gl0_inv
11946 ; GFX10-CU-NEXT: buffer_gl1_inv
11947 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
11948 ; GFX10-CU-NEXT: s_endpgm
12034 ; GFX11-CU-LABEL: global_system_one_as_acquire_monotonic_ret_cmpxchg:
12035 ; GFX11-CU: ; %bb.0: ; %entry
12036 ; GFX11-CU-NEXT: s_clause 0x1
12037 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
12038 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
12039 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
12040 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
12041 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
12042 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
12043 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
12044 ; GFX11-CU-NEXT: buffer_gl0_inv
12045 ; GFX11-CU-NEXT: buffer_gl1_inv
12046 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
12047 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
12048 ; GFX11-CU-NEXT: s_endpgm
12109 ; GFX10-CU-LABEL: global_system_one_as_release_monotonic_ret_cmpxchg:
12110 ; GFX10-CU: ; %bb.0: ; %entry
12111 ; GFX10-CU-NEXT: s_clause 0x1
12112 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
12113 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
12114 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
12115 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
12116 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
12117 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
12118 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
12119 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
12120 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
12121 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
12122 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
12123 ; GFX10-CU-NEXT: s_endpgm
12212 ; GFX11-CU-LABEL: global_system_one_as_release_monotonic_ret_cmpxchg:
12213 ; GFX11-CU: ; %bb.0: ; %entry
12214 ; GFX11-CU-NEXT: s_clause 0x1
12215 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
12216 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
12217 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
12218 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
12219 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
12220 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
12221 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
12222 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
12223 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
12224 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
12225 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
12226 ; GFX11-CU-NEXT: s_endpgm
12291 ; GFX10-CU-LABEL: global_system_one_as_acq_rel_monotonic_ret_cmpxchg:
12292 ; GFX10-CU: ; %bb.0: ; %entry
12293 ; GFX10-CU-NEXT: s_clause 0x1
12294 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
12295 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
12296 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
12297 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
12298 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
12299 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
12300 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
12301 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
12302 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
12303 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
12304 ; GFX10-CU-NEXT: buffer_gl0_inv
12305 ; GFX10-CU-NEXT: buffer_gl1_inv
12306 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
12307 ; GFX10-CU-NEXT: s_endpgm
12404 ; GFX11-CU-LABEL: global_system_one_as_acq_rel_monotonic_ret_cmpxchg:
12405 ; GFX11-CU: ; %bb.0: ; %entry
12406 ; GFX11-CU-NEXT: s_clause 0x1
12407 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
12408 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
12409 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
12410 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
12411 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
12412 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
12413 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
12414 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
12415 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
12416 ; GFX11-CU-NEXT: buffer_gl0_inv
12417 ; GFX11-CU-NEXT: buffer_gl1_inv
12418 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
12419 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
12420 ; GFX11-CU-NEXT: s_endpgm
12485 ; GFX10-CU-LABEL: global_system_one_as_seq_cst_monotonic_ret_cmpxchg:
12486 ; GFX10-CU: ; %bb.0: ; %entry
12487 ; GFX10-CU-NEXT: s_clause 0x1
12488 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
12489 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
12490 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
12491 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
12492 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
12493 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
12494 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
12495 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
12496 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
12497 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
12498 ; GFX10-CU-NEXT: buffer_gl0_inv
12499 ; GFX10-CU-NEXT: buffer_gl1_inv
12500 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
12501 ; GFX10-CU-NEXT: s_endpgm
12598 ; GFX11-CU-LABEL: global_system_one_as_seq_cst_monotonic_ret_cmpxchg:
12599 ; GFX11-CU: ; %bb.0: ; %entry
12600 ; GFX11-CU-NEXT: s_clause 0x1
12601 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
12602 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
12603 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
12604 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
12605 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
12606 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
12607 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
12608 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
12609 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
12610 ; GFX11-CU-NEXT: buffer_gl0_inv
12611 ; GFX11-CU-NEXT: buffer_gl1_inv
12612 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
12613 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
12614 ; GFX11-CU-NEXT: s_endpgm
12675 ; GFX10-CU-LABEL: global_system_one_as_monotonic_acquire_ret_cmpxchg:
12676 ; GFX10-CU: ; %bb.0: ; %entry
12677 ; GFX10-CU-NEXT: s_clause 0x1
12678 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
12679 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
12680 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
12681 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
12682 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
12683 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
12684 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 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: global_store_dword v2, v0, s[2:3]
12689 ; GFX10-CU-NEXT: s_endpgm
12775 ; GFX11-CU-LABEL: global_system_one_as_monotonic_acquire_ret_cmpxchg:
12776 ; GFX11-CU: ; %bb.0: ; %entry
12777 ; GFX11-CU-NEXT: s_clause 0x1
12778 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
12779 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
12780 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
12781 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
12782 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
12783 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
12784 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
12785 ; GFX11-CU-NEXT: buffer_gl0_inv
12786 ; GFX11-CU-NEXT: buffer_gl1_inv
12787 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
12788 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
12789 ; GFX11-CU-NEXT: s_endpgm
12850 ; GFX10-CU-LABEL: global_system_one_as_acquire_acquire_ret_cmpxchg:
12851 ; GFX10-CU: ; %bb.0: ; %entry
12852 ; GFX10-CU-NEXT: s_clause 0x1
12853 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
12854 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
12855 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
12856 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
12857 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
12858 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
12859 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
12860 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
12861 ; GFX10-CU-NEXT: buffer_gl0_inv
12862 ; GFX10-CU-NEXT: buffer_gl1_inv
12863 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
12864 ; GFX10-CU-NEXT: s_endpgm
12950 ; GFX11-CU-LABEL: global_system_one_as_acquire_acquire_ret_cmpxchg:
12951 ; GFX11-CU: ; %bb.0: ; %entry
12952 ; GFX11-CU-NEXT: s_clause 0x1
12953 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
12954 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
12955 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
12956 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
12957 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
12958 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
12959 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
12960 ; GFX11-CU-NEXT: buffer_gl0_inv
12961 ; GFX11-CU-NEXT: buffer_gl1_inv
12962 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
12963 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
12964 ; GFX11-CU-NEXT: s_endpgm
13029 ; GFX10-CU-LABEL: global_system_one_as_release_acquire_ret_cmpxchg:
13030 ; GFX10-CU: ; %bb.0: ; %entry
13031 ; GFX10-CU-NEXT: s_clause 0x1
13032 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
13033 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
13034 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
13035 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
13036 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
13037 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
13038 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
13039 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
13040 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
13041 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
13042 ; GFX10-CU-NEXT: buffer_gl0_inv
13043 ; GFX10-CU-NEXT: buffer_gl1_inv
13044 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
13045 ; GFX10-CU-NEXT: s_endpgm
13142 ; GFX11-CU-LABEL: global_system_one_as_release_acquire_ret_cmpxchg:
13143 ; GFX11-CU: ; %bb.0: ; %entry
13144 ; GFX11-CU-NEXT: s_clause 0x1
13145 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
13146 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
13147 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
13148 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
13149 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
13150 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
13151 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
13152 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
13153 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
13154 ; GFX11-CU-NEXT: buffer_gl0_inv
13155 ; GFX11-CU-NEXT: buffer_gl1_inv
13156 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
13157 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
13158 ; GFX11-CU-NEXT: s_endpgm
13223 ; GFX10-CU-LABEL: global_system_one_as_acq_rel_acquire_ret_cmpxchg:
13224 ; GFX10-CU: ; %bb.0: ; %entry
13225 ; GFX10-CU-NEXT: s_clause 0x1
13226 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
13227 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
13228 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
13229 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
13230 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
13231 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
13232 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
13233 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
13234 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
13235 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
13236 ; GFX10-CU-NEXT: buffer_gl0_inv
13237 ; GFX10-CU-NEXT: buffer_gl1_inv
13238 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
13239 ; GFX10-CU-NEXT: s_endpgm
13336 ; GFX11-CU-LABEL: global_system_one_as_acq_rel_acquire_ret_cmpxchg:
13337 ; GFX11-CU: ; %bb.0: ; %entry
13338 ; GFX11-CU-NEXT: s_clause 0x1
13339 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
13340 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
13341 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
13342 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
13343 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
13344 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
13345 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
13346 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
13347 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
13348 ; GFX11-CU-NEXT: buffer_gl0_inv
13349 ; GFX11-CU-NEXT: buffer_gl1_inv
13350 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
13351 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
13352 ; GFX11-CU-NEXT: s_endpgm
13417 ; GFX10-CU-LABEL: global_system_one_as_seq_cst_acquire_ret_cmpxchg:
13418 ; GFX10-CU: ; %bb.0: ; %entry
13419 ; GFX10-CU-NEXT: s_clause 0x1
13420 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
13421 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
13422 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
13423 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
13424 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
13425 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
13426 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
13427 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
13428 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
13429 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
13430 ; GFX10-CU-NEXT: buffer_gl0_inv
13431 ; GFX10-CU-NEXT: buffer_gl1_inv
13432 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
13433 ; GFX10-CU-NEXT: s_endpgm
13530 ; GFX11-CU-LABEL: global_system_one_as_seq_cst_acquire_ret_cmpxchg:
13531 ; GFX11-CU: ; %bb.0: ; %entry
13532 ; GFX11-CU-NEXT: s_clause 0x1
13533 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
13534 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
13535 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
13536 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
13537 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
13538 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
13539 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
13540 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
13541 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
13542 ; GFX11-CU-NEXT: buffer_gl0_inv
13543 ; GFX11-CU-NEXT: buffer_gl1_inv
13544 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
13545 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
13546 ; GFX11-CU-NEXT: s_endpgm
13611 ; GFX10-CU-LABEL: global_system_one_as_monotonic_seq_cst_ret_cmpxchg:
13612 ; GFX10-CU: ; %bb.0: ; %entry
13613 ; GFX10-CU-NEXT: s_clause 0x1
13614 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
13615 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
13616 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
13617 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
13618 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
13619 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
13620 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
13621 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
13622 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
13623 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
13624 ; GFX10-CU-NEXT: buffer_gl0_inv
13625 ; GFX10-CU-NEXT: buffer_gl1_inv
13626 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
13627 ; GFX10-CU-NEXT: s_endpgm
13724 ; GFX11-CU-LABEL: global_system_one_as_monotonic_seq_cst_ret_cmpxchg:
13725 ; GFX11-CU: ; %bb.0: ; %entry
13726 ; GFX11-CU-NEXT: s_clause 0x1
13727 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
13728 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
13729 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
13730 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
13731 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
13732 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
13733 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
13734 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
13735 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
13736 ; GFX11-CU-NEXT: buffer_gl0_inv
13737 ; GFX11-CU-NEXT: buffer_gl1_inv
13738 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
13739 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
13740 ; GFX11-CU-NEXT: s_endpgm
13805 ; GFX10-CU-LABEL: global_system_one_as_acquire_seq_cst_ret_cmpxchg:
13806 ; GFX10-CU: ; %bb.0: ; %entry
13807 ; GFX10-CU-NEXT: s_clause 0x1
13808 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
13809 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
13810 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
13811 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
13812 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
13813 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
13814 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
13815 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
13816 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
13817 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
13818 ; GFX10-CU-NEXT: buffer_gl0_inv
13819 ; GFX10-CU-NEXT: buffer_gl1_inv
13820 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
13821 ; GFX10-CU-NEXT: s_endpgm
13918 ; GFX11-CU-LABEL: global_system_one_as_acquire_seq_cst_ret_cmpxchg:
13919 ; GFX11-CU: ; %bb.0: ; %entry
13920 ; GFX11-CU-NEXT: s_clause 0x1
13921 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
13922 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
13923 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
13924 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
13925 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
13926 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
13927 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
13928 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
13929 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
13930 ; GFX11-CU-NEXT: buffer_gl0_inv
13931 ; GFX11-CU-NEXT: buffer_gl1_inv
13932 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
13933 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
13934 ; GFX11-CU-NEXT: s_endpgm
13999 ; GFX10-CU-LABEL: global_system_one_as_release_seq_cst_ret_cmpxchg:
14000 ; GFX10-CU: ; %bb.0: ; %entry
14001 ; GFX10-CU-NEXT: s_clause 0x1
14002 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
14003 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
14004 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
14005 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
14006 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
14007 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
14008 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
14009 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
14010 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
14011 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
14012 ; GFX10-CU-NEXT: buffer_gl0_inv
14013 ; GFX10-CU-NEXT: buffer_gl1_inv
14014 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
14015 ; GFX10-CU-NEXT: s_endpgm
14112 ; GFX11-CU-LABEL: global_system_one_as_release_seq_cst_ret_cmpxchg:
14113 ; GFX11-CU: ; %bb.0: ; %entry
14114 ; GFX11-CU-NEXT: s_clause 0x1
14115 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
14116 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
14117 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
14118 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
14119 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
14120 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
14121 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
14122 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
14123 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
14124 ; GFX11-CU-NEXT: buffer_gl0_inv
14125 ; GFX11-CU-NEXT: buffer_gl1_inv
14126 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
14127 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
14128 ; GFX11-CU-NEXT: s_endpgm
14193 ; GFX10-CU-LABEL: global_system_one_as_acq_rel_seq_cst_ret_cmpxchg:
14194 ; GFX10-CU: ; %bb.0: ; %entry
14195 ; GFX10-CU-NEXT: s_clause 0x1
14196 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
14197 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
14198 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
14199 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
14200 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
14201 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
14202 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
14203 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
14204 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
14205 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
14206 ; GFX10-CU-NEXT: buffer_gl0_inv
14207 ; GFX10-CU-NEXT: buffer_gl1_inv
14208 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
14209 ; GFX10-CU-NEXT: s_endpgm
14306 ; GFX11-CU-LABEL: global_system_one_as_acq_rel_seq_cst_ret_cmpxchg:
14307 ; GFX11-CU: ; %bb.0: ; %entry
14308 ; GFX11-CU-NEXT: s_clause 0x1
14309 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
14310 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
14311 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
14312 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
14313 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
14314 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
14315 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
14316 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
14317 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
14318 ; GFX11-CU-NEXT: buffer_gl0_inv
14319 ; GFX11-CU-NEXT: buffer_gl1_inv
14320 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
14321 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
14322 ; GFX11-CU-NEXT: s_endpgm
14387 ; GFX10-CU-LABEL: global_system_one_as_seq_cst_seq_cst_ret_cmpxchg:
14388 ; GFX10-CU: ; %bb.0: ; %entry
14389 ; GFX10-CU-NEXT: s_clause 0x1
14390 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
14391 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
14392 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
14393 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
14394 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
14395 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
14396 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
14397 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
14398 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
14399 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
14400 ; GFX10-CU-NEXT: buffer_gl0_inv
14401 ; GFX10-CU-NEXT: buffer_gl1_inv
14402 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
14403 ; GFX10-CU-NEXT: s_endpgm
14500 ; GFX11-CU-LABEL: global_system_one_as_seq_cst_seq_cst_ret_cmpxchg:
14501 ; GFX11-CU: ; %bb.0: ; %entry
14502 ; GFX11-CU-NEXT: s_clause 0x1
14503 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
14504 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
14505 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
14506 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
14507 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
14508 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
14509 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
14510 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
14511 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
14512 ; GFX11-CU-NEXT: buffer_gl0_inv
14513 ; GFX11-CU-NEXT: buffer_gl1_inv
14514 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
14515 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
14516 ; GFX11-CU-NEXT: s_endpgm