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_singlethread_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_singlethread_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_singlethread_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]
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_singlethread_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]
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
317 ; GFX10-CU-LABEL: global_singlethread_acquire_load:
318 ; GFX10-CU: ; %bb.0: ; %entry
319 ; GFX10-CU-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
320 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
321 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
322 ; GFX10-CU-NEXT: global_load_dword v1, v0, s[0:1]
323 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
324 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[2:3]
325 ; GFX10-CU-NEXT: s_endpgm
393 ; GFX11-CU-LABEL: global_singlethread_acquire_load:
394 ; GFX11-CU: ; %bb.0: ; %entry
395 ; GFX11-CU-NEXT: s_load_b128 s[0:3], s[0:1], 0x0
396 ; GFX11-CU-NEXT: v_mov_b32_e32 v0, 0
397 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
398 ; GFX11-CU-NEXT: global_load_b32 v1, v0, s[0:1]
399 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
400 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
401 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
402 ; GFX11-CU-NEXT: s_endpgm
449 ; GFX10-CU-LABEL: global_singlethread_seq_cst_load:
450 ; GFX10-CU: ; %bb.0: ; %entry
451 ; GFX10-CU-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
452 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
453 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
454 ; GFX10-CU-NEXT: global_load_dword v1, v0, s[0:1]
455 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
456 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[2:3]
457 ; GFX10-CU-NEXT: s_endpgm
525 ; GFX11-CU-LABEL: global_singlethread_seq_cst_load:
526 ; GFX11-CU: ; %bb.0: ; %entry
527 ; GFX11-CU-NEXT: s_load_b128 s[0:3], s[0:1], 0x0
528 ; GFX11-CU-NEXT: v_mov_b32_e32 v0, 0
529 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
530 ; GFX11-CU-NEXT: global_load_b32 v1, v0, s[0:1]
531 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
532 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
533 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
534 ; GFX11-CU-NEXT: s_endpgm
576 ; GFX10-CU-LABEL: global_singlethread_unordered_store:
577 ; GFX10-CU: ; %bb.0: ; %entry
578 ; GFX10-CU-NEXT: s_clause 0x1
579 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x0
580 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
581 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
582 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
583 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
584 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
585 ; GFX10-CU-NEXT: s_endpgm
649 ; GFX11-CU-LABEL: global_singlethread_unordered_store:
650 ; GFX11-CU: ; %bb.0: ; %entry
651 ; GFX11-CU-NEXT: s_clause 0x1
652 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x0
653 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
654 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
655 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
656 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
657 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
658 ; GFX11-CU-NEXT: s_endpgm
699 ; GFX10-CU-LABEL: global_singlethread_monotonic_store:
700 ; GFX10-CU: ; %bb.0: ; %entry
701 ; GFX10-CU-NEXT: s_clause 0x1
702 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x0
703 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
704 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
705 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
706 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
707 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
708 ; GFX10-CU-NEXT: s_endpgm
772 ; GFX11-CU-LABEL: global_singlethread_monotonic_store:
773 ; GFX11-CU: ; %bb.0: ; %entry
774 ; GFX11-CU-NEXT: s_clause 0x1
775 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x0
776 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
777 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
778 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
779 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
780 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
781 ; GFX11-CU-NEXT: s_endpgm
822 ; GFX10-CU-LABEL: global_singlethread_release_store:
823 ; GFX10-CU: ; %bb.0: ; %entry
824 ; GFX10-CU-NEXT: s_clause 0x1
825 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x0
826 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
827 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
828 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
829 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
830 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
831 ; GFX10-CU-NEXT: s_endpgm
895 ; GFX11-CU-LABEL: global_singlethread_release_store:
896 ; GFX11-CU: ; %bb.0: ; %entry
897 ; GFX11-CU-NEXT: s_clause 0x1
898 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x0
899 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
900 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
901 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
902 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
903 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
904 ; GFX11-CU-NEXT: s_endpgm
945 ; GFX10-CU-LABEL: global_singlethread_seq_cst_store:
946 ; GFX10-CU: ; %bb.0: ; %entry
947 ; GFX10-CU-NEXT: s_clause 0x1
948 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x0
949 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
950 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
951 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
952 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
953 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
954 ; GFX10-CU-NEXT: s_endpgm
1018 ; GFX11-CU-LABEL: global_singlethread_seq_cst_store:
1019 ; GFX11-CU: ; %bb.0: ; %entry
1020 ; GFX11-CU-NEXT: s_clause 0x1
1021 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x0
1022 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
1023 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
1024 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
1025 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
1026 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
1027 ; GFX11-CU-NEXT: s_endpgm
1068 ; GFX10-CU-LABEL: global_singlethread_monotonic_atomicrmw:
1069 ; GFX10-CU: ; %bb.0: ; %entry
1070 ; GFX10-CU-NEXT: s_clause 0x1
1071 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
1072 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1073 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
1074 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
1075 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
1076 ; GFX10-CU-NEXT: global_atomic_swap v0, v1, s[0:1]
1077 ; GFX10-CU-NEXT: s_endpgm
1141 ; GFX11-CU-LABEL: global_singlethread_monotonic_atomicrmw:
1142 ; GFX11-CU: ; %bb.0: ; %entry
1143 ; GFX11-CU-NEXT: s_clause 0x1
1144 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
1145 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
1146 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
1147 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
1148 ; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
1149 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
1150 ; GFX11-CU-NEXT: s_endpgm
1191 ; GFX10-CU-LABEL: global_singlethread_acquire_atomicrmw:
1192 ; GFX10-CU: ; %bb.0: ; %entry
1193 ; GFX10-CU-NEXT: s_clause 0x1
1194 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
1195 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1196 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
1197 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
1198 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
1199 ; GFX10-CU-NEXT: global_atomic_swap v0, v1, s[0:1]
1200 ; GFX10-CU-NEXT: s_endpgm
1264 ; GFX11-CU-LABEL: global_singlethread_acquire_atomicrmw:
1265 ; GFX11-CU: ; %bb.0: ; %entry
1266 ; GFX11-CU-NEXT: s_clause 0x1
1267 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
1268 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
1269 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
1270 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
1271 ; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
1272 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
1273 ; GFX11-CU-NEXT: s_endpgm
1314 ; GFX10-CU-LABEL: global_singlethread_release_atomicrmw:
1315 ; GFX10-CU: ; %bb.0: ; %entry
1316 ; GFX10-CU-NEXT: s_clause 0x1
1317 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
1318 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1319 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
1320 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
1321 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
1322 ; GFX10-CU-NEXT: global_atomic_swap v0, v1, s[0:1]
1323 ; GFX10-CU-NEXT: s_endpgm
1387 ; GFX11-CU-LABEL: global_singlethread_release_atomicrmw:
1388 ; GFX11-CU: ; %bb.0: ; %entry
1389 ; GFX11-CU-NEXT: s_clause 0x1
1390 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
1391 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
1392 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
1393 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
1394 ; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
1395 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
1396 ; GFX11-CU-NEXT: s_endpgm
1437 ; GFX10-CU-LABEL: global_singlethread_acq_rel_atomicrmw:
1438 ; GFX10-CU: ; %bb.0: ; %entry
1439 ; GFX10-CU-NEXT: s_clause 0x1
1440 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
1441 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1442 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
1443 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
1444 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
1445 ; GFX10-CU-NEXT: global_atomic_swap v0, v1, s[0:1]
1446 ; GFX10-CU-NEXT: s_endpgm
1510 ; GFX11-CU-LABEL: global_singlethread_acq_rel_atomicrmw:
1511 ; GFX11-CU: ; %bb.0: ; %entry
1512 ; GFX11-CU-NEXT: s_clause 0x1
1513 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
1514 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
1515 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
1516 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
1517 ; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
1518 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
1519 ; GFX11-CU-NEXT: s_endpgm
1560 ; GFX10-CU-LABEL: global_singlethread_seq_cst_atomicrmw:
1561 ; GFX10-CU: ; %bb.0: ; %entry
1562 ; GFX10-CU-NEXT: s_clause 0x1
1563 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
1564 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1565 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
1566 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
1567 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
1568 ; GFX10-CU-NEXT: global_atomic_swap v0, v1, s[0:1]
1569 ; GFX10-CU-NEXT: s_endpgm
1633 ; GFX11-CU-LABEL: global_singlethread_seq_cst_atomicrmw:
1634 ; GFX11-CU: ; %bb.0: ; %entry
1635 ; GFX11-CU-NEXT: s_clause 0x1
1636 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
1637 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
1638 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
1639 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
1640 ; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
1641 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
1642 ; GFX11-CU-NEXT: s_endpgm
1689 ; GFX10-CU-LABEL: global_singlethread_acquire_ret_atomicrmw:
1690 ; GFX10-CU: ; %bb.0: ; %entry
1691 ; GFX10-CU-NEXT: s_clause 0x1
1692 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
1693 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1694 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
1695 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
1696 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
1697 ; GFX10-CU-NEXT: global_atomic_swap v1, v0, v1, s[0:1] glc
1698 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
1699 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
1700 ; GFX10-CU-NEXT: s_endpgm
1776 ; GFX11-CU-LABEL: global_singlethread_acquire_ret_atomicrmw:
1777 ; GFX11-CU: ; %bb.0: ; %entry
1778 ; GFX11-CU-NEXT: s_clause 0x1
1779 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
1780 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
1781 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
1782 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
1783 ; GFX11-CU-NEXT: global_atomic_swap_b32 v1, v0, v1, s[0:1] glc
1784 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
1785 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
1786 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
1787 ; GFX11-CU-NEXT: s_endpgm
1835 ; GFX10-CU-LABEL: global_singlethread_acq_rel_ret_atomicrmw:
1836 ; GFX10-CU: ; %bb.0: ; %entry
1837 ; GFX10-CU-NEXT: s_clause 0x1
1838 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
1839 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1840 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
1841 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
1842 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
1843 ; GFX10-CU-NEXT: global_atomic_swap v1, v0, v1, s[0:1] glc
1844 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
1845 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
1846 ; GFX10-CU-NEXT: s_endpgm
1922 ; GFX11-CU-LABEL: global_singlethread_acq_rel_ret_atomicrmw:
1923 ; GFX11-CU: ; %bb.0: ; %entry
1924 ; GFX11-CU-NEXT: s_clause 0x1
1925 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
1926 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
1927 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
1928 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
1929 ; GFX11-CU-NEXT: global_atomic_swap_b32 v1, v0, v1, s[0:1] glc
1930 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
1931 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
1932 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
1933 ; GFX11-CU-NEXT: s_endpgm
1981 ; GFX10-CU-LABEL: global_singlethread_seq_cst_ret_atomicrmw:
1982 ; GFX10-CU: ; %bb.0: ; %entry
1983 ; GFX10-CU-NEXT: s_clause 0x1
1984 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
1985 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1986 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
1987 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
1988 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
1989 ; GFX10-CU-NEXT: global_atomic_swap v1, v0, v1, s[0:1] glc
1990 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
1991 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
1992 ; GFX10-CU-NEXT: s_endpgm
2068 ; GFX11-CU-LABEL: global_singlethread_seq_cst_ret_atomicrmw:
2069 ; GFX11-CU: ; %bb.0: ; %entry
2070 ; GFX11-CU-NEXT: s_clause 0x1
2071 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
2072 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
2073 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
2074 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
2075 ; GFX11-CU-NEXT: global_atomic_swap_b32 v1, v0, v1, s[0:1] glc
2076 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
2077 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
2078 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
2079 ; GFX11-CU-NEXT: s_endpgm
2126 ; GFX10-CU-LABEL: global_singlethread_monotonic_monotonic_cmpxchg:
2127 ; GFX10-CU: ; %bb.0: ; %entry
2128 ; GFX10-CU-NEXT: s_clause 0x1
2129 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
2130 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
2131 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
2132 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
2133 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
2134 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
2135 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
2136 ; GFX10-CU-NEXT: s_endpgm
2202 ; GFX11-CU-LABEL: global_singlethread_monotonic_monotonic_cmpxchg:
2203 ; GFX11-CU: ; %bb.0: ; %entry
2204 ; GFX11-CU-NEXT: s_clause 0x1
2205 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
2206 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
2207 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
2208 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
2209 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
2210 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
2211 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
2212 ; GFX11-CU-NEXT: s_endpgm
2259 ; GFX10-CU-LABEL: global_singlethread_acquire_monotonic_cmpxchg:
2260 ; GFX10-CU: ; %bb.0: ; %entry
2261 ; GFX10-CU-NEXT: s_clause 0x1
2262 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
2263 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
2264 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
2265 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
2266 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
2267 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
2268 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
2269 ; GFX10-CU-NEXT: s_endpgm
2335 ; GFX11-CU-LABEL: global_singlethread_acquire_monotonic_cmpxchg:
2336 ; GFX11-CU: ; %bb.0: ; %entry
2337 ; GFX11-CU-NEXT: s_clause 0x1
2338 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
2339 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
2340 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
2341 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
2342 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
2343 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
2344 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
2345 ; GFX11-CU-NEXT: s_endpgm
2392 ; GFX10-CU-LABEL: global_singlethread_release_monotonic_cmpxchg:
2393 ; GFX10-CU: ; %bb.0: ; %entry
2394 ; GFX10-CU-NEXT: s_clause 0x1
2395 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
2396 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
2397 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
2398 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
2399 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
2400 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
2401 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
2402 ; GFX10-CU-NEXT: s_endpgm
2468 ; GFX11-CU-LABEL: global_singlethread_release_monotonic_cmpxchg:
2469 ; GFX11-CU: ; %bb.0: ; %entry
2470 ; GFX11-CU-NEXT: s_clause 0x1
2471 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
2472 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
2473 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
2474 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
2475 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
2476 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
2477 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
2478 ; GFX11-CU-NEXT: s_endpgm
2525 ; GFX10-CU-LABEL: global_singlethread_acq_rel_monotonic_cmpxchg:
2526 ; GFX10-CU: ; %bb.0: ; %entry
2527 ; GFX10-CU-NEXT: s_clause 0x1
2528 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
2529 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
2530 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
2531 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
2532 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
2533 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
2534 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
2535 ; GFX10-CU-NEXT: s_endpgm
2601 ; GFX11-CU-LABEL: global_singlethread_acq_rel_monotonic_cmpxchg:
2602 ; GFX11-CU: ; %bb.0: ; %entry
2603 ; GFX11-CU-NEXT: s_clause 0x1
2604 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
2605 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
2606 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
2607 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
2608 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
2609 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
2610 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
2611 ; GFX11-CU-NEXT: s_endpgm
2658 ; GFX10-CU-LABEL: global_singlethread_seq_cst_monotonic_cmpxchg:
2659 ; GFX10-CU: ; %bb.0: ; %entry
2660 ; GFX10-CU-NEXT: s_clause 0x1
2661 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
2662 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
2663 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
2664 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
2665 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
2666 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
2667 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
2668 ; GFX10-CU-NEXT: s_endpgm
2734 ; GFX11-CU-LABEL: global_singlethread_seq_cst_monotonic_cmpxchg:
2735 ; GFX11-CU: ; %bb.0: ; %entry
2736 ; GFX11-CU-NEXT: s_clause 0x1
2737 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
2738 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
2739 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
2740 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
2741 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
2742 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
2743 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
2744 ; GFX11-CU-NEXT: s_endpgm
2791 ; GFX10-CU-LABEL: global_singlethread_monotonic_acquire_cmpxchg:
2792 ; GFX10-CU: ; %bb.0: ; %entry
2793 ; GFX10-CU-NEXT: s_clause 0x1
2794 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
2795 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
2796 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
2797 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
2798 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
2799 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
2800 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
2801 ; GFX10-CU-NEXT: s_endpgm
2867 ; GFX11-CU-LABEL: global_singlethread_monotonic_acquire_cmpxchg:
2868 ; GFX11-CU: ; %bb.0: ; %entry
2869 ; GFX11-CU-NEXT: s_clause 0x1
2870 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
2871 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
2872 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
2873 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
2874 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
2875 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
2876 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
2877 ; GFX11-CU-NEXT: s_endpgm
2924 ; GFX10-CU-LABEL: global_singlethread_acquire_acquire_cmpxchg:
2925 ; GFX10-CU: ; %bb.0: ; %entry
2926 ; GFX10-CU-NEXT: s_clause 0x1
2927 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
2928 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
2929 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
2930 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
2931 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
2932 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
2933 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
2934 ; GFX10-CU-NEXT: s_endpgm
3000 ; GFX11-CU-LABEL: global_singlethread_acquire_acquire_cmpxchg:
3001 ; GFX11-CU: ; %bb.0: ; %entry
3002 ; GFX11-CU-NEXT: s_clause 0x1
3003 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
3004 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
3005 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
3006 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
3007 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
3008 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
3009 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
3010 ; GFX11-CU-NEXT: s_endpgm
3057 ; GFX10-CU-LABEL: global_singlethread_release_acquire_cmpxchg:
3058 ; GFX10-CU: ; %bb.0: ; %entry
3059 ; GFX10-CU-NEXT: s_clause 0x1
3060 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
3061 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
3062 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
3063 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
3064 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
3065 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
3066 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
3067 ; GFX10-CU-NEXT: s_endpgm
3133 ; GFX11-CU-LABEL: global_singlethread_release_acquire_cmpxchg:
3134 ; GFX11-CU: ; %bb.0: ; %entry
3135 ; GFX11-CU-NEXT: s_clause 0x1
3136 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
3137 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
3138 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
3139 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
3140 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
3141 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
3142 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
3143 ; GFX11-CU-NEXT: s_endpgm
3190 ; GFX10-CU-LABEL: global_singlethread_acq_rel_acquire_cmpxchg:
3191 ; GFX10-CU: ; %bb.0: ; %entry
3192 ; GFX10-CU-NEXT: s_clause 0x1
3193 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
3194 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
3195 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
3196 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
3197 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
3198 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
3199 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
3200 ; GFX10-CU-NEXT: s_endpgm
3266 ; GFX11-CU-LABEL: global_singlethread_acq_rel_acquire_cmpxchg:
3267 ; GFX11-CU: ; %bb.0: ; %entry
3268 ; GFX11-CU-NEXT: s_clause 0x1
3269 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
3270 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
3271 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
3272 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
3273 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
3274 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
3275 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
3276 ; GFX11-CU-NEXT: s_endpgm
3323 ; GFX10-CU-LABEL: global_singlethread_seq_cst_acquire_cmpxchg:
3324 ; GFX10-CU: ; %bb.0: ; %entry
3325 ; GFX10-CU-NEXT: s_clause 0x1
3326 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
3327 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
3328 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
3329 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
3330 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
3331 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
3332 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
3333 ; GFX10-CU-NEXT: s_endpgm
3399 ; GFX11-CU-LABEL: global_singlethread_seq_cst_acquire_cmpxchg:
3400 ; GFX11-CU: ; %bb.0: ; %entry
3401 ; GFX11-CU-NEXT: s_clause 0x1
3402 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
3403 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
3404 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
3405 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
3406 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
3407 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
3408 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
3409 ; GFX11-CU-NEXT: s_endpgm
3456 ; GFX10-CU-LABEL: global_singlethread_monotonic_seq_cst_cmpxchg:
3457 ; GFX10-CU: ; %bb.0: ; %entry
3458 ; GFX10-CU-NEXT: s_clause 0x1
3459 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
3460 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
3461 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
3462 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
3463 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
3464 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
3465 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
3466 ; GFX10-CU-NEXT: s_endpgm
3532 ; GFX11-CU-LABEL: global_singlethread_monotonic_seq_cst_cmpxchg:
3533 ; GFX11-CU: ; %bb.0: ; %entry
3534 ; GFX11-CU-NEXT: s_clause 0x1
3535 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
3536 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
3537 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
3538 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
3539 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
3540 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
3541 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
3542 ; GFX11-CU-NEXT: s_endpgm
3589 ; GFX10-CU-LABEL: global_singlethread_acquire_seq_cst_cmpxchg:
3590 ; GFX10-CU: ; %bb.0: ; %entry
3591 ; GFX10-CU-NEXT: s_clause 0x1
3592 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
3593 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
3594 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
3595 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
3596 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
3597 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
3598 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
3599 ; GFX10-CU-NEXT: s_endpgm
3665 ; GFX11-CU-LABEL: global_singlethread_acquire_seq_cst_cmpxchg:
3666 ; GFX11-CU: ; %bb.0: ; %entry
3667 ; GFX11-CU-NEXT: s_clause 0x1
3668 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
3669 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
3670 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
3671 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
3672 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
3673 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
3674 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
3675 ; GFX11-CU-NEXT: s_endpgm
3722 ; GFX10-CU-LABEL: global_singlethread_release_seq_cst_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: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
3732 ; GFX10-CU-NEXT: s_endpgm
3798 ; GFX11-CU-LABEL: global_singlethread_release_seq_cst_cmpxchg:
3799 ; GFX11-CU: ; %bb.0: ; %entry
3800 ; GFX11-CU-NEXT: s_clause 0x1
3801 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
3802 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
3803 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
3804 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
3805 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
3806 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
3807 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
3808 ; GFX11-CU-NEXT: s_endpgm
3855 ; GFX10-CU-LABEL: global_singlethread_acq_rel_seq_cst_cmpxchg:
3856 ; GFX10-CU: ; %bb.0: ; %entry
3857 ; GFX10-CU-NEXT: s_clause 0x1
3858 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
3859 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
3860 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
3861 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
3862 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
3863 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
3864 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
3865 ; GFX10-CU-NEXT: s_endpgm
3931 ; GFX11-CU-LABEL: global_singlethread_acq_rel_seq_cst_cmpxchg:
3932 ; GFX11-CU: ; %bb.0: ; %entry
3933 ; GFX11-CU-NEXT: s_clause 0x1
3934 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
3935 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
3936 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
3937 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
3938 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
3939 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
3940 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
3941 ; GFX11-CU-NEXT: s_endpgm
3988 ; GFX10-CU-LABEL: global_singlethread_seq_cst_seq_cst_cmpxchg:
3989 ; GFX10-CU: ; %bb.0: ; %entry
3990 ; GFX10-CU-NEXT: s_clause 0x1
3991 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
3992 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
3993 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
3994 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
3995 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
3996 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
3997 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
3998 ; GFX10-CU-NEXT: s_endpgm
4064 ; GFX11-CU-LABEL: global_singlethread_seq_cst_seq_cst_cmpxchg:
4065 ; GFX11-CU: ; %bb.0: ; %entry
4066 ; GFX11-CU-NEXT: s_clause 0x1
4067 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
4068 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
4069 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
4070 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
4071 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
4072 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
4073 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
4074 ; GFX11-CU-NEXT: s_endpgm
4129 ; GFX10-CU-LABEL: global_singlethread_monotonic_monotonic_ret_cmpxchg:
4130 ; GFX10-CU: ; %bb.0: ; %entry
4131 ; GFX10-CU-NEXT: s_clause 0x1
4132 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
4133 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
4134 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
4135 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
4136 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
4137 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
4138 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
4139 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
4140 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
4141 ; GFX10-CU-NEXT: s_endpgm
4219 ; GFX11-CU-LABEL: global_singlethread_monotonic_monotonic_ret_cmpxchg:
4220 ; GFX11-CU: ; %bb.0: ; %entry
4221 ; GFX11-CU-NEXT: s_clause 0x1
4222 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
4223 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
4224 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
4225 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
4226 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
4227 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
4228 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
4229 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
4230 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
4231 ; GFX11-CU-NEXT: s_endpgm
4288 ; GFX10-CU-LABEL: global_singlethread_acquire_monotonic_ret_cmpxchg:
4289 ; GFX10-CU: ; %bb.0: ; %entry
4290 ; GFX10-CU-NEXT: s_clause 0x1
4291 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
4292 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
4293 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
4294 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
4295 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
4296 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
4297 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
4298 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
4299 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
4300 ; GFX10-CU-NEXT: s_endpgm
4378 ; GFX11-CU-LABEL: global_singlethread_acquire_monotonic_ret_cmpxchg:
4379 ; GFX11-CU: ; %bb.0: ; %entry
4380 ; GFX11-CU-NEXT: s_clause 0x1
4381 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
4382 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
4383 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
4384 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
4385 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
4386 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
4387 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
4388 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
4389 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
4390 ; GFX11-CU-NEXT: s_endpgm
4447 ; GFX10-CU-LABEL: global_singlethread_release_monotonic_ret_cmpxchg:
4448 ; GFX10-CU: ; %bb.0: ; %entry
4449 ; GFX10-CU-NEXT: s_clause 0x1
4450 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
4451 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
4452 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
4453 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
4454 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
4455 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
4456 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
4457 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
4458 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
4459 ; GFX10-CU-NEXT: s_endpgm
4537 ; GFX11-CU-LABEL: global_singlethread_release_monotonic_ret_cmpxchg:
4538 ; GFX11-CU: ; %bb.0: ; %entry
4539 ; GFX11-CU-NEXT: s_clause 0x1
4540 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
4541 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
4542 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
4543 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
4544 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
4545 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
4546 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
4547 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
4548 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
4549 ; GFX11-CU-NEXT: s_endpgm
4606 ; GFX10-CU-LABEL: global_singlethread_acq_rel_monotonic_ret_cmpxchg:
4607 ; GFX10-CU: ; %bb.0: ; %entry
4608 ; GFX10-CU-NEXT: s_clause 0x1
4609 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
4610 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
4611 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
4612 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
4613 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
4614 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
4615 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
4616 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
4617 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
4618 ; GFX10-CU-NEXT: s_endpgm
4696 ; GFX11-CU-LABEL: global_singlethread_acq_rel_monotonic_ret_cmpxchg:
4697 ; GFX11-CU: ; %bb.0: ; %entry
4698 ; GFX11-CU-NEXT: s_clause 0x1
4699 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
4700 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
4701 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
4702 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
4703 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
4704 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
4705 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
4706 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
4707 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
4708 ; GFX11-CU-NEXT: s_endpgm
4765 ; GFX10-CU-LABEL: global_singlethread_seq_cst_monotonic_ret_cmpxchg:
4766 ; GFX10-CU: ; %bb.0: ; %entry
4767 ; GFX10-CU-NEXT: s_clause 0x1
4768 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
4769 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
4770 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
4771 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
4772 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
4773 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
4774 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
4775 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
4776 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
4777 ; GFX10-CU-NEXT: s_endpgm
4855 ; GFX11-CU-LABEL: global_singlethread_seq_cst_monotonic_ret_cmpxchg:
4856 ; GFX11-CU: ; %bb.0: ; %entry
4857 ; GFX11-CU-NEXT: s_clause 0x1
4858 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
4859 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
4860 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
4861 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
4862 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
4863 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
4864 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
4865 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
4866 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
4867 ; GFX11-CU-NEXT: s_endpgm
4924 ; GFX10-CU-LABEL: global_singlethread_monotonic_acquire_ret_cmpxchg:
4925 ; GFX10-CU: ; %bb.0: ; %entry
4926 ; GFX10-CU-NEXT: s_clause 0x1
4927 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
4928 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
4929 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
4930 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
4931 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
4932 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
4933 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
4934 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
4935 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
4936 ; GFX10-CU-NEXT: s_endpgm
5014 ; GFX11-CU-LABEL: global_singlethread_monotonic_acquire_ret_cmpxchg:
5015 ; GFX11-CU: ; %bb.0: ; %entry
5016 ; GFX11-CU-NEXT: s_clause 0x1
5017 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
5018 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
5019 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
5020 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
5021 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
5022 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
5023 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
5024 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
5025 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
5026 ; GFX11-CU-NEXT: s_endpgm
5083 ; GFX10-CU-LABEL: global_singlethread_acquire_acquire_ret_cmpxchg:
5084 ; GFX10-CU: ; %bb.0: ; %entry
5085 ; GFX10-CU-NEXT: s_clause 0x1
5086 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
5087 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
5088 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
5089 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
5090 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
5091 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
5092 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
5093 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
5094 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
5095 ; GFX10-CU-NEXT: s_endpgm
5173 ; GFX11-CU-LABEL: global_singlethread_acquire_acquire_ret_cmpxchg:
5174 ; GFX11-CU: ; %bb.0: ; %entry
5175 ; GFX11-CU-NEXT: s_clause 0x1
5176 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
5177 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
5178 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
5179 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
5180 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
5181 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
5182 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
5183 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
5184 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
5185 ; GFX11-CU-NEXT: s_endpgm
5242 ; GFX10-CU-LABEL: global_singlethread_release_acquire_ret_cmpxchg:
5243 ; GFX10-CU: ; %bb.0: ; %entry
5244 ; GFX10-CU-NEXT: s_clause 0x1
5245 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
5246 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
5247 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
5248 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
5249 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
5250 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
5251 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
5252 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
5253 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
5254 ; GFX10-CU-NEXT: s_endpgm
5332 ; GFX11-CU-LABEL: global_singlethread_release_acquire_ret_cmpxchg:
5333 ; GFX11-CU: ; %bb.0: ; %entry
5334 ; GFX11-CU-NEXT: s_clause 0x1
5335 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
5336 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
5337 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
5338 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
5339 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
5340 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
5341 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
5342 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
5343 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
5344 ; GFX11-CU-NEXT: s_endpgm
5401 ; GFX10-CU-LABEL: global_singlethread_acq_rel_acquire_ret_cmpxchg:
5402 ; GFX10-CU: ; %bb.0: ; %entry
5403 ; GFX10-CU-NEXT: s_clause 0x1
5404 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
5405 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
5406 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
5407 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
5408 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
5409 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
5410 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
5411 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
5412 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
5413 ; GFX10-CU-NEXT: s_endpgm
5491 ; GFX11-CU-LABEL: global_singlethread_acq_rel_acquire_ret_cmpxchg:
5492 ; GFX11-CU: ; %bb.0: ; %entry
5493 ; GFX11-CU-NEXT: s_clause 0x1
5494 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
5495 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
5496 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
5497 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
5498 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
5499 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
5500 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
5501 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
5502 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
5503 ; GFX11-CU-NEXT: s_endpgm
5560 ; GFX10-CU-LABEL: global_singlethread_seq_cst_acquire_ret_cmpxchg:
5561 ; GFX10-CU: ; %bb.0: ; %entry
5562 ; GFX10-CU-NEXT: s_clause 0x1
5563 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
5564 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
5565 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
5566 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
5567 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
5568 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
5569 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
5570 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
5571 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
5572 ; GFX10-CU-NEXT: s_endpgm
5650 ; GFX11-CU-LABEL: global_singlethread_seq_cst_acquire_ret_cmpxchg:
5651 ; GFX11-CU: ; %bb.0: ; %entry
5652 ; GFX11-CU-NEXT: s_clause 0x1
5653 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
5654 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
5655 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
5656 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
5657 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
5658 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
5659 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
5660 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
5661 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
5662 ; GFX11-CU-NEXT: s_endpgm
5719 ; GFX10-CU-LABEL: global_singlethread_monotonic_seq_cst_ret_cmpxchg:
5720 ; GFX10-CU: ; %bb.0: ; %entry
5721 ; GFX10-CU-NEXT: s_clause 0x1
5722 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
5723 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
5724 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
5725 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
5726 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
5727 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
5728 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
5729 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
5730 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
5731 ; GFX10-CU-NEXT: s_endpgm
5809 ; GFX11-CU-LABEL: global_singlethread_monotonic_seq_cst_ret_cmpxchg:
5810 ; GFX11-CU: ; %bb.0: ; %entry
5811 ; GFX11-CU-NEXT: s_clause 0x1
5812 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
5813 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
5814 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
5815 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
5816 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
5817 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
5818 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
5819 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
5820 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
5821 ; GFX11-CU-NEXT: s_endpgm
5878 ; GFX10-CU-LABEL: global_singlethread_acquire_seq_cst_ret_cmpxchg:
5879 ; GFX10-CU: ; %bb.0: ; %entry
5880 ; GFX10-CU-NEXT: s_clause 0x1
5881 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
5882 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
5883 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
5884 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
5885 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
5886 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
5887 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
5888 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
5889 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
5890 ; GFX10-CU-NEXT: s_endpgm
5968 ; GFX11-CU-LABEL: global_singlethread_acquire_seq_cst_ret_cmpxchg:
5969 ; GFX11-CU: ; %bb.0: ; %entry
5970 ; GFX11-CU-NEXT: s_clause 0x1
5971 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
5972 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
5973 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
5974 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
5975 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
5976 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
5977 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
5978 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
5979 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
5980 ; GFX11-CU-NEXT: s_endpgm
6037 ; GFX10-CU-LABEL: global_singlethread_release_seq_cst_ret_cmpxchg:
6038 ; GFX10-CU: ; %bb.0: ; %entry
6039 ; GFX10-CU-NEXT: s_clause 0x1
6040 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
6041 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
6042 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
6043 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
6044 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
6045 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
6046 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
6047 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
6048 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
6049 ; GFX10-CU-NEXT: s_endpgm
6127 ; GFX11-CU-LABEL: global_singlethread_release_seq_cst_ret_cmpxchg:
6128 ; GFX11-CU: ; %bb.0: ; %entry
6129 ; GFX11-CU-NEXT: s_clause 0x1
6130 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
6131 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
6132 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
6133 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
6134 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
6135 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
6136 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
6137 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
6138 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
6139 ; GFX11-CU-NEXT: s_endpgm
6196 ; GFX10-CU-LABEL: global_singlethread_acq_rel_seq_cst_ret_cmpxchg:
6197 ; GFX10-CU: ; %bb.0: ; %entry
6198 ; GFX10-CU-NEXT: s_clause 0x1
6199 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
6200 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
6201 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
6202 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
6203 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
6204 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
6205 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
6206 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
6207 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
6208 ; GFX10-CU-NEXT: s_endpgm
6286 ; GFX11-CU-LABEL: global_singlethread_acq_rel_seq_cst_ret_cmpxchg:
6287 ; GFX11-CU: ; %bb.0: ; %entry
6288 ; GFX11-CU-NEXT: s_clause 0x1
6289 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
6290 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
6291 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
6292 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
6293 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
6294 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
6295 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
6296 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
6297 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
6298 ; GFX11-CU-NEXT: s_endpgm
6355 ; GFX10-CU-LABEL: global_singlethread_seq_cst_seq_cst_ret_cmpxchg:
6356 ; GFX10-CU: ; %bb.0: ; %entry
6357 ; GFX10-CU-NEXT: s_clause 0x1
6358 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
6359 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
6360 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
6361 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
6362 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
6363 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
6364 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
6365 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
6366 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
6367 ; GFX10-CU-NEXT: s_endpgm
6445 ; GFX11-CU-LABEL: global_singlethread_seq_cst_seq_cst_ret_cmpxchg:
6446 ; GFX11-CU: ; %bb.0: ; %entry
6447 ; GFX11-CU-NEXT: s_clause 0x1
6448 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
6449 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
6450 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
6451 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
6452 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
6453 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
6454 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
6455 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
6456 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
6457 ; GFX11-CU-NEXT: s_endpgm
6506 ; GFX10-CU-LABEL: global_singlethread_one_as_unordered_load:
6507 ; GFX10-CU: ; %bb.0: ; %entry
6508 ; GFX10-CU-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
6509 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
6510 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
6511 ; GFX10-CU-NEXT: global_load_dword v1, v0, s[0:1]
6512 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
6513 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[2:3]
6514 ; GFX10-CU-NEXT: s_endpgm
6582 ; GFX11-CU-LABEL: global_singlethread_one_as_unordered_load:
6583 ; GFX11-CU: ; %bb.0: ; %entry
6584 ; GFX11-CU-NEXT: s_load_b128 s[0:3], s[0:1], 0x0
6585 ; GFX11-CU-NEXT: v_mov_b32_e32 v0, 0
6586 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
6587 ; GFX11-CU-NEXT: global_load_b32 v1, v0, s[0:1]
6588 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
6589 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
6590 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
6591 ; GFX11-CU-NEXT: s_endpgm
6638 ; GFX10-CU-LABEL: global_singlethread_one_as_monotonic_load:
6639 ; GFX10-CU: ; %bb.0: ; %entry
6640 ; GFX10-CU-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
6641 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
6642 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
6643 ; GFX10-CU-NEXT: global_load_dword v1, v0, s[0:1]
6644 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
6645 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[2:3]
6646 ; GFX10-CU-NEXT: s_endpgm
6714 ; GFX11-CU-LABEL: global_singlethread_one_as_monotonic_load:
6715 ; GFX11-CU: ; %bb.0: ; %entry
6716 ; GFX11-CU-NEXT: s_load_b128 s[0:3], s[0:1], 0x0
6717 ; GFX11-CU-NEXT: v_mov_b32_e32 v0, 0
6718 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
6719 ; GFX11-CU-NEXT: global_load_b32 v1, v0, s[0:1]
6720 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
6721 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
6722 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
6723 ; GFX11-CU-NEXT: s_endpgm
6770 ; GFX10-CU-LABEL: global_singlethread_one_as_acquire_load:
6771 ; GFX10-CU: ; %bb.0: ; %entry
6772 ; GFX10-CU-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
6773 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
6774 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
6775 ; GFX10-CU-NEXT: global_load_dword v1, v0, s[0:1]
6776 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
6777 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[2:3]
6778 ; GFX10-CU-NEXT: s_endpgm
6846 ; GFX11-CU-LABEL: global_singlethread_one_as_acquire_load:
6847 ; GFX11-CU: ; %bb.0: ; %entry
6848 ; GFX11-CU-NEXT: s_load_b128 s[0:3], s[0:1], 0x0
6849 ; GFX11-CU-NEXT: v_mov_b32_e32 v0, 0
6850 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
6851 ; GFX11-CU-NEXT: global_load_b32 v1, v0, s[0:1]
6852 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
6853 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
6854 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
6855 ; GFX11-CU-NEXT: s_endpgm
6902 ; GFX10-CU-LABEL: global_singlethread_one_as_seq_cst_load:
6903 ; GFX10-CU: ; %bb.0: ; %entry
6904 ; GFX10-CU-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
6905 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
6906 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
6907 ; GFX10-CU-NEXT: global_load_dword v1, v0, s[0:1]
6908 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
6909 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[2:3]
6910 ; GFX10-CU-NEXT: s_endpgm
6978 ; GFX11-CU-LABEL: global_singlethread_one_as_seq_cst_load:
6979 ; GFX11-CU: ; %bb.0: ; %entry
6980 ; GFX11-CU-NEXT: s_load_b128 s[0:3], s[0:1], 0x0
6981 ; GFX11-CU-NEXT: v_mov_b32_e32 v0, 0
6982 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
6983 ; GFX11-CU-NEXT: global_load_b32 v1, v0, s[0:1]
6984 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
6985 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
6986 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
6987 ; GFX11-CU-NEXT: s_endpgm
7029 ; GFX10-CU-LABEL: global_singlethread_one_as_unordered_store:
7030 ; GFX10-CU: ; %bb.0: ; %entry
7031 ; GFX10-CU-NEXT: s_clause 0x1
7032 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x0
7033 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
7034 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
7035 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
7036 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
7037 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
7038 ; GFX10-CU-NEXT: s_endpgm
7102 ; GFX11-CU-LABEL: global_singlethread_one_as_unordered_store:
7103 ; GFX11-CU: ; %bb.0: ; %entry
7104 ; GFX11-CU-NEXT: s_clause 0x1
7105 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x0
7106 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
7107 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
7108 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
7109 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
7110 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
7111 ; GFX11-CU-NEXT: s_endpgm
7152 ; GFX10-CU-LABEL: global_singlethread_one_as_monotonic_store:
7153 ; GFX10-CU: ; %bb.0: ; %entry
7154 ; GFX10-CU-NEXT: s_clause 0x1
7155 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x0
7156 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
7157 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
7158 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
7159 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
7160 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
7161 ; GFX10-CU-NEXT: s_endpgm
7225 ; GFX11-CU-LABEL: global_singlethread_one_as_monotonic_store:
7226 ; GFX11-CU: ; %bb.0: ; %entry
7227 ; GFX11-CU-NEXT: s_clause 0x1
7228 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x0
7229 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
7230 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
7231 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
7232 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
7233 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
7234 ; GFX11-CU-NEXT: s_endpgm
7275 ; GFX10-CU-LABEL: global_singlethread_one_as_release_store:
7276 ; GFX10-CU: ; %bb.0: ; %entry
7277 ; GFX10-CU-NEXT: s_clause 0x1
7278 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x0
7279 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
7280 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
7281 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
7282 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
7283 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
7284 ; GFX10-CU-NEXT: s_endpgm
7348 ; GFX11-CU-LABEL: global_singlethread_one_as_release_store:
7349 ; GFX11-CU: ; %bb.0: ; %entry
7350 ; GFX11-CU-NEXT: s_clause 0x1
7351 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x0
7352 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
7353 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
7354 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
7355 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
7356 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
7357 ; GFX11-CU-NEXT: s_endpgm
7398 ; GFX10-CU-LABEL: global_singlethread_one_as_seq_cst_store:
7399 ; GFX10-CU: ; %bb.0: ; %entry
7400 ; GFX10-CU-NEXT: s_clause 0x1
7401 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x0
7402 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
7403 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
7404 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
7405 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
7406 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
7407 ; GFX10-CU-NEXT: s_endpgm
7471 ; GFX11-CU-LABEL: global_singlethread_one_as_seq_cst_store:
7472 ; GFX11-CU: ; %bb.0: ; %entry
7473 ; GFX11-CU-NEXT: s_clause 0x1
7474 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x0
7475 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x8
7476 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
7477 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
7478 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
7479 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
7480 ; GFX11-CU-NEXT: s_endpgm
7521 ; GFX10-CU-LABEL: global_singlethread_one_as_monotonic_atomicrmw:
7522 ; GFX10-CU: ; %bb.0: ; %entry
7523 ; GFX10-CU-NEXT: s_clause 0x1
7524 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
7525 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
7526 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
7527 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
7528 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
7529 ; GFX10-CU-NEXT: global_atomic_swap v0, v1, s[0:1]
7530 ; GFX10-CU-NEXT: s_endpgm
7594 ; GFX11-CU-LABEL: global_singlethread_one_as_monotonic_atomicrmw:
7595 ; GFX11-CU: ; %bb.0: ; %entry
7596 ; GFX11-CU-NEXT: s_clause 0x1
7597 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
7598 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
7599 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
7600 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
7601 ; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
7602 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
7603 ; GFX11-CU-NEXT: s_endpgm
7644 ; GFX10-CU-LABEL: global_singlethread_one_as_acquire_atomicrmw:
7645 ; GFX10-CU: ; %bb.0: ; %entry
7646 ; GFX10-CU-NEXT: s_clause 0x1
7647 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
7648 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
7649 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
7650 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
7651 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
7652 ; GFX10-CU-NEXT: global_atomic_swap v0, v1, s[0:1]
7653 ; GFX10-CU-NEXT: s_endpgm
7717 ; GFX11-CU-LABEL: global_singlethread_one_as_acquire_atomicrmw:
7718 ; GFX11-CU: ; %bb.0: ; %entry
7719 ; GFX11-CU-NEXT: s_clause 0x1
7720 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
7721 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
7722 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
7723 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
7724 ; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
7725 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
7726 ; GFX11-CU-NEXT: s_endpgm
7767 ; GFX10-CU-LABEL: global_singlethread_one_as_release_atomicrmw:
7768 ; GFX10-CU: ; %bb.0: ; %entry
7769 ; GFX10-CU-NEXT: s_clause 0x1
7770 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
7771 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
7772 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
7773 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
7774 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
7775 ; GFX10-CU-NEXT: global_atomic_swap v0, v1, s[0:1]
7776 ; GFX10-CU-NEXT: s_endpgm
7840 ; GFX11-CU-LABEL: global_singlethread_one_as_release_atomicrmw:
7841 ; GFX11-CU: ; %bb.0: ; %entry
7842 ; GFX11-CU-NEXT: s_clause 0x1
7843 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
7844 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
7845 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
7846 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
7847 ; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
7848 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
7849 ; GFX11-CU-NEXT: s_endpgm
7890 ; GFX10-CU-LABEL: global_singlethread_one_as_acq_rel_atomicrmw:
7891 ; GFX10-CU: ; %bb.0: ; %entry
7892 ; GFX10-CU-NEXT: s_clause 0x1
7893 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
7894 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
7895 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
7896 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
7897 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
7898 ; GFX10-CU-NEXT: global_atomic_swap v0, v1, s[0:1]
7899 ; GFX10-CU-NEXT: s_endpgm
7963 ; GFX11-CU-LABEL: global_singlethread_one_as_acq_rel_atomicrmw:
7964 ; GFX11-CU: ; %bb.0: ; %entry
7965 ; GFX11-CU-NEXT: s_clause 0x1
7966 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
7967 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
7968 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
7969 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
7970 ; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
7971 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
7972 ; GFX11-CU-NEXT: s_endpgm
8013 ; GFX10-CU-LABEL: global_singlethread_one_as_seq_cst_atomicrmw:
8014 ; GFX10-CU: ; %bb.0: ; %entry
8015 ; GFX10-CU-NEXT: s_clause 0x1
8016 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
8017 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
8018 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
8019 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
8020 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
8021 ; GFX10-CU-NEXT: global_atomic_swap v0, v1, s[0:1]
8022 ; GFX10-CU-NEXT: s_endpgm
8086 ; GFX11-CU-LABEL: global_singlethread_one_as_seq_cst_atomicrmw:
8087 ; GFX11-CU: ; %bb.0: ; %entry
8088 ; GFX11-CU-NEXT: s_clause 0x1
8089 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
8090 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
8091 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
8092 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
8093 ; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
8094 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
8095 ; GFX11-CU-NEXT: s_endpgm
8142 ; GFX10-CU-LABEL: global_singlethread_one_as_acquire_ret_atomicrmw:
8143 ; GFX10-CU: ; %bb.0: ; %entry
8144 ; GFX10-CU-NEXT: s_clause 0x1
8145 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
8146 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
8147 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
8148 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
8149 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
8150 ; GFX10-CU-NEXT: global_atomic_swap v1, v0, v1, s[0:1] glc
8151 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
8152 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
8153 ; GFX10-CU-NEXT: s_endpgm
8229 ; GFX11-CU-LABEL: global_singlethread_one_as_acquire_ret_atomicrmw:
8230 ; GFX11-CU: ; %bb.0: ; %entry
8231 ; GFX11-CU-NEXT: s_clause 0x1
8232 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
8233 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
8234 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
8235 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
8236 ; GFX11-CU-NEXT: global_atomic_swap_b32 v1, v0, v1, s[0:1] glc
8237 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
8238 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
8239 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
8240 ; GFX11-CU-NEXT: s_endpgm
8288 ; GFX10-CU-LABEL: global_singlethread_one_as_acq_rel_ret_atomicrmw:
8289 ; GFX10-CU: ; %bb.0: ; %entry
8290 ; GFX10-CU-NEXT: s_clause 0x1
8291 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
8292 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
8293 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
8294 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
8295 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
8296 ; GFX10-CU-NEXT: global_atomic_swap v1, v0, v1, s[0:1] glc
8297 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
8298 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
8299 ; GFX10-CU-NEXT: s_endpgm
8375 ; GFX11-CU-LABEL: global_singlethread_one_as_acq_rel_ret_atomicrmw:
8376 ; GFX11-CU: ; %bb.0: ; %entry
8377 ; GFX11-CU-NEXT: s_clause 0x1
8378 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
8379 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
8380 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
8381 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
8382 ; GFX11-CU-NEXT: global_atomic_swap_b32 v1, v0, v1, s[0:1] glc
8383 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
8384 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
8385 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
8386 ; GFX11-CU-NEXT: s_endpgm
8434 ; GFX10-CU-LABEL: global_singlethread_one_as_seq_cst_ret_atomicrmw:
8435 ; GFX10-CU: ; %bb.0: ; %entry
8436 ; GFX10-CU-NEXT: s_clause 0x1
8437 ; GFX10-CU-NEXT: s_load_dword s2, s[4:5], 0x8
8438 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
8439 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, 0
8440 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
8441 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s2
8442 ; GFX10-CU-NEXT: global_atomic_swap v1, v0, v1, s[0:1] glc
8443 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
8444 ; GFX10-CU-NEXT: global_store_dword v0, v1, s[0:1]
8445 ; GFX10-CU-NEXT: s_endpgm
8521 ; GFX11-CU-LABEL: global_singlethread_one_as_seq_cst_ret_atomicrmw:
8522 ; GFX11-CU: ; %bb.0: ; %entry
8523 ; GFX11-CU-NEXT: s_clause 0x1
8524 ; GFX11-CU-NEXT: s_load_b32 s2, s[0:1], 0x8
8525 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
8526 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
8527 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
8528 ; GFX11-CU-NEXT: global_atomic_swap_b32 v1, v0, v1, s[0:1] glc
8529 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
8530 ; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
8531 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
8532 ; GFX11-CU-NEXT: s_endpgm
8579 ; GFX10-CU-LABEL: global_singlethread_one_as_monotonic_monotonic_cmpxchg:
8580 ; GFX10-CU: ; %bb.0: ; %entry
8581 ; GFX10-CU-NEXT: s_clause 0x1
8582 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
8583 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
8584 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
8585 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
8586 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
8587 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
8588 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
8589 ; GFX10-CU-NEXT: s_endpgm
8655 ; GFX11-CU-LABEL: global_singlethread_one_as_monotonic_monotonic_cmpxchg:
8656 ; GFX11-CU: ; %bb.0: ; %entry
8657 ; GFX11-CU-NEXT: s_clause 0x1
8658 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
8659 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
8660 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
8661 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
8662 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
8663 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
8664 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
8665 ; GFX11-CU-NEXT: s_endpgm
8712 ; GFX10-CU-LABEL: global_singlethread_one_as_acquire_monotonic_cmpxchg:
8713 ; GFX10-CU: ; %bb.0: ; %entry
8714 ; GFX10-CU-NEXT: s_clause 0x1
8715 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
8716 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
8717 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
8718 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
8719 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
8720 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
8721 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
8722 ; GFX10-CU-NEXT: s_endpgm
8788 ; GFX11-CU-LABEL: global_singlethread_one_as_acquire_monotonic_cmpxchg:
8789 ; GFX11-CU: ; %bb.0: ; %entry
8790 ; GFX11-CU-NEXT: s_clause 0x1
8791 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
8792 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
8793 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
8794 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
8795 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
8796 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
8797 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
8798 ; GFX11-CU-NEXT: s_endpgm
8845 ; GFX10-CU-LABEL: global_singlethread_one_as_release_monotonic_cmpxchg:
8846 ; GFX10-CU: ; %bb.0: ; %entry
8847 ; GFX10-CU-NEXT: s_clause 0x1
8848 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
8849 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
8850 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
8851 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
8852 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
8853 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
8854 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
8855 ; GFX10-CU-NEXT: s_endpgm
8921 ; GFX11-CU-LABEL: global_singlethread_one_as_release_monotonic_cmpxchg:
8922 ; GFX11-CU: ; %bb.0: ; %entry
8923 ; GFX11-CU-NEXT: s_clause 0x1
8924 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
8925 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
8926 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
8927 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
8928 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
8929 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
8930 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
8931 ; GFX11-CU-NEXT: s_endpgm
8978 ; GFX10-CU-LABEL: global_singlethread_one_as_acq_rel_monotonic_cmpxchg:
8979 ; GFX10-CU: ; %bb.0: ; %entry
8980 ; GFX10-CU-NEXT: s_clause 0x1
8981 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
8982 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
8983 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
8984 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
8985 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
8986 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
8987 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
8988 ; GFX10-CU-NEXT: s_endpgm
9054 ; GFX11-CU-LABEL: global_singlethread_one_as_acq_rel_monotonic_cmpxchg:
9055 ; GFX11-CU: ; %bb.0: ; %entry
9056 ; GFX11-CU-NEXT: s_clause 0x1
9057 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
9058 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
9059 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
9060 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
9061 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
9062 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
9063 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
9064 ; GFX11-CU-NEXT: s_endpgm
9111 ; GFX10-CU-LABEL: global_singlethread_one_as_seq_cst_monotonic_cmpxchg:
9112 ; GFX10-CU: ; %bb.0: ; %entry
9113 ; GFX10-CU-NEXT: s_clause 0x1
9114 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
9115 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
9116 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
9117 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
9118 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
9119 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
9120 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
9121 ; GFX10-CU-NEXT: s_endpgm
9187 ; GFX11-CU-LABEL: global_singlethread_one_as_seq_cst_monotonic_cmpxchg:
9188 ; GFX11-CU: ; %bb.0: ; %entry
9189 ; GFX11-CU-NEXT: s_clause 0x1
9190 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
9191 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
9192 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
9193 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
9194 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
9195 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
9196 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
9197 ; GFX11-CU-NEXT: s_endpgm
9244 ; GFX10-CU-LABEL: global_singlethread_one_as_monotonic_acquire_cmpxchg:
9245 ; GFX10-CU: ; %bb.0: ; %entry
9246 ; GFX10-CU-NEXT: s_clause 0x1
9247 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
9248 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
9249 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
9250 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
9251 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
9252 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
9253 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
9254 ; GFX10-CU-NEXT: s_endpgm
9320 ; GFX11-CU-LABEL: global_singlethread_one_as_monotonic_acquire_cmpxchg:
9321 ; GFX11-CU: ; %bb.0: ; %entry
9322 ; GFX11-CU-NEXT: s_clause 0x1
9323 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
9324 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
9325 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
9326 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
9327 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
9328 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
9329 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
9330 ; GFX11-CU-NEXT: s_endpgm
9377 ; GFX10-CU-LABEL: global_singlethread_one_as_acquire_acquire_cmpxchg:
9378 ; GFX10-CU: ; %bb.0: ; %entry
9379 ; GFX10-CU-NEXT: s_clause 0x1
9380 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
9381 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
9382 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
9383 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
9384 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
9385 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
9386 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
9387 ; GFX10-CU-NEXT: s_endpgm
9453 ; GFX11-CU-LABEL: global_singlethread_one_as_acquire_acquire_cmpxchg:
9454 ; GFX11-CU: ; %bb.0: ; %entry
9455 ; GFX11-CU-NEXT: s_clause 0x1
9456 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
9457 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
9458 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
9459 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
9460 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
9461 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
9462 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
9463 ; GFX11-CU-NEXT: s_endpgm
9510 ; GFX10-CU-LABEL: global_singlethread_one_as_release_acquire_cmpxchg:
9511 ; GFX10-CU: ; %bb.0: ; %entry
9512 ; GFX10-CU-NEXT: s_clause 0x1
9513 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
9514 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
9515 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
9516 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
9517 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
9518 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
9519 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
9520 ; GFX10-CU-NEXT: s_endpgm
9586 ; GFX11-CU-LABEL: global_singlethread_one_as_release_acquire_cmpxchg:
9587 ; GFX11-CU: ; %bb.0: ; %entry
9588 ; GFX11-CU-NEXT: s_clause 0x1
9589 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
9590 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
9591 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
9592 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
9593 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
9594 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
9595 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
9596 ; GFX11-CU-NEXT: s_endpgm
9643 ; GFX10-CU-LABEL: global_singlethread_one_as_acq_rel_acquire_cmpxchg:
9644 ; GFX10-CU: ; %bb.0: ; %entry
9645 ; GFX10-CU-NEXT: s_clause 0x1
9646 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
9647 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
9648 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
9649 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
9650 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
9651 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
9652 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
9653 ; GFX10-CU-NEXT: s_endpgm
9719 ; GFX11-CU-LABEL: global_singlethread_one_as_acq_rel_acquire_cmpxchg:
9720 ; GFX11-CU: ; %bb.0: ; %entry
9721 ; GFX11-CU-NEXT: s_clause 0x1
9722 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
9723 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
9724 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
9725 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
9726 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
9727 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
9728 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
9729 ; GFX11-CU-NEXT: s_endpgm
9776 ; GFX10-CU-LABEL: global_singlethread_one_as_seq_cst_acquire_cmpxchg:
9777 ; GFX10-CU: ; %bb.0: ; %entry
9778 ; GFX10-CU-NEXT: s_clause 0x1
9779 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
9780 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
9781 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
9782 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
9783 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
9784 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
9785 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
9786 ; GFX10-CU-NEXT: s_endpgm
9852 ; GFX11-CU-LABEL: global_singlethread_one_as_seq_cst_acquire_cmpxchg:
9853 ; GFX11-CU: ; %bb.0: ; %entry
9854 ; GFX11-CU-NEXT: s_clause 0x1
9855 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
9856 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
9857 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
9858 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
9859 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
9860 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
9861 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
9862 ; GFX11-CU-NEXT: s_endpgm
9909 ; GFX10-CU-LABEL: global_singlethread_one_as_monotonic_seq_cst_cmpxchg:
9910 ; GFX10-CU: ; %bb.0: ; %entry
9911 ; GFX10-CU-NEXT: s_clause 0x1
9912 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
9913 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
9914 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
9915 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
9916 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
9917 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
9918 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
9919 ; GFX10-CU-NEXT: s_endpgm
9985 ; GFX11-CU-LABEL: global_singlethread_one_as_monotonic_seq_cst_cmpxchg:
9986 ; GFX11-CU: ; %bb.0: ; %entry
9987 ; GFX11-CU-NEXT: s_clause 0x1
9988 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
9989 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
9990 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
9991 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
9992 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
9993 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
9994 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
9995 ; GFX11-CU-NEXT: s_endpgm
10042 ; GFX10-CU-LABEL: global_singlethread_one_as_acquire_seq_cst_cmpxchg:
10043 ; GFX10-CU: ; %bb.0: ; %entry
10044 ; GFX10-CU-NEXT: s_clause 0x1
10045 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
10046 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
10047 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
10048 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
10049 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
10050 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
10051 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
10052 ; GFX10-CU-NEXT: s_endpgm
10118 ; GFX11-CU-LABEL: global_singlethread_one_as_acquire_seq_cst_cmpxchg:
10119 ; GFX11-CU: ; %bb.0: ; %entry
10120 ; GFX11-CU-NEXT: s_clause 0x1
10121 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
10122 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
10123 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
10124 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
10125 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
10126 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
10127 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
10128 ; GFX11-CU-NEXT: s_endpgm
10175 ; GFX10-CU-LABEL: global_singlethread_one_as_release_seq_cst_cmpxchg:
10176 ; GFX10-CU: ; %bb.0: ; %entry
10177 ; GFX10-CU-NEXT: s_clause 0x1
10178 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
10179 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
10180 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
10181 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
10182 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
10183 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
10184 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
10185 ; GFX10-CU-NEXT: s_endpgm
10251 ; GFX11-CU-LABEL: global_singlethread_one_as_release_seq_cst_cmpxchg:
10252 ; GFX11-CU: ; %bb.0: ; %entry
10253 ; GFX11-CU-NEXT: s_clause 0x1
10254 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
10255 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
10256 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
10257 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
10258 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
10259 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
10260 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
10261 ; GFX11-CU-NEXT: s_endpgm
10308 ; GFX10-CU-LABEL: global_singlethread_one_as_acq_rel_seq_cst_cmpxchg:
10309 ; GFX10-CU: ; %bb.0: ; %entry
10310 ; GFX10-CU-NEXT: s_clause 0x1
10311 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
10312 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
10313 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
10314 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
10315 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
10316 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
10317 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
10318 ; GFX10-CU-NEXT: s_endpgm
10384 ; GFX11-CU-LABEL: global_singlethread_one_as_acq_rel_seq_cst_cmpxchg:
10385 ; GFX11-CU: ; %bb.0: ; %entry
10386 ; GFX11-CU-NEXT: s_clause 0x1
10387 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
10388 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
10389 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
10390 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
10391 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
10392 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
10393 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
10394 ; GFX11-CU-NEXT: s_endpgm
10441 ; GFX10-CU-LABEL: global_singlethread_one_as_seq_cst_seq_cst_cmpxchg:
10442 ; GFX10-CU: ; %bb.0: ; %entry
10443 ; GFX10-CU-NEXT: s_clause 0x1
10444 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
10445 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
10446 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
10447 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
10448 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
10449 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
10450 ; GFX10-CU-NEXT: global_atomic_cmpswap v2, v[0:1], s[2:3] offset:16
10451 ; GFX10-CU-NEXT: s_endpgm
10517 ; GFX11-CU-LABEL: global_singlethread_one_as_seq_cst_seq_cst_cmpxchg:
10518 ; GFX11-CU: ; %bb.0: ; %entry
10519 ; GFX11-CU-NEXT: s_clause 0x1
10520 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
10521 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
10522 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
10523 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
10524 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
10525 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
10526 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
10527 ; GFX11-CU-NEXT: s_endpgm
10582 ; GFX10-CU-LABEL: global_singlethread_one_as_monotonic_monotonic_ret_cmpxchg:
10583 ; GFX10-CU: ; %bb.0: ; %entry
10584 ; GFX10-CU-NEXT: s_clause 0x1
10585 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
10586 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
10587 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
10588 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
10589 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
10590 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
10591 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
10592 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
10593 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
10594 ; GFX10-CU-NEXT: s_endpgm
10672 ; GFX11-CU-LABEL: global_singlethread_one_as_monotonic_monotonic_ret_cmpxchg:
10673 ; GFX11-CU: ; %bb.0: ; %entry
10674 ; GFX11-CU-NEXT: s_clause 0x1
10675 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
10676 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
10677 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
10678 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
10679 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
10680 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
10681 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
10682 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
10683 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
10684 ; GFX11-CU-NEXT: s_endpgm
10741 ; GFX10-CU-LABEL: global_singlethread_one_as_acquire_monotonic_ret_cmpxchg:
10742 ; GFX10-CU: ; %bb.0: ; %entry
10743 ; GFX10-CU-NEXT: s_clause 0x1
10744 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
10745 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
10746 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
10747 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
10748 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
10749 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
10750 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
10751 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
10752 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
10753 ; GFX10-CU-NEXT: s_endpgm
10831 ; GFX11-CU-LABEL: global_singlethread_one_as_acquire_monotonic_ret_cmpxchg:
10832 ; GFX11-CU: ; %bb.0: ; %entry
10833 ; GFX11-CU-NEXT: s_clause 0x1
10834 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
10835 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
10836 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
10837 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
10838 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
10839 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
10840 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
10841 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
10842 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
10843 ; GFX11-CU-NEXT: s_endpgm
10900 ; GFX10-CU-LABEL: global_singlethread_one_as_release_monotonic_ret_cmpxchg:
10901 ; GFX10-CU: ; %bb.0: ; %entry
10902 ; GFX10-CU-NEXT: s_clause 0x1
10903 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
10904 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
10905 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
10906 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
10907 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
10908 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
10909 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
10910 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
10911 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
10912 ; GFX10-CU-NEXT: s_endpgm
10990 ; GFX11-CU-LABEL: global_singlethread_one_as_release_monotonic_ret_cmpxchg:
10991 ; GFX11-CU: ; %bb.0: ; %entry
10992 ; GFX11-CU-NEXT: s_clause 0x1
10993 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
10994 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
10995 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
10996 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
10997 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
10998 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
10999 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
11000 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
11001 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
11002 ; GFX11-CU-NEXT: s_endpgm
11059 ; GFX10-CU-LABEL: global_singlethread_one_as_acq_rel_monotonic_ret_cmpxchg:
11060 ; GFX10-CU: ; %bb.0: ; %entry
11061 ; GFX10-CU-NEXT: s_clause 0x1
11062 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
11063 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
11064 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
11065 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
11066 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
11067 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
11068 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
11069 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
11070 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
11071 ; GFX10-CU-NEXT: s_endpgm
11149 ; GFX11-CU-LABEL: global_singlethread_one_as_acq_rel_monotonic_ret_cmpxchg:
11150 ; GFX11-CU: ; %bb.0: ; %entry
11151 ; GFX11-CU-NEXT: s_clause 0x1
11152 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
11153 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
11154 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
11155 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
11156 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
11157 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
11158 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
11159 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
11160 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
11161 ; GFX11-CU-NEXT: s_endpgm
11218 ; GFX10-CU-LABEL: global_singlethread_one_as_seq_cst_monotonic_ret_cmpxchg:
11219 ; GFX10-CU: ; %bb.0: ; %entry
11220 ; GFX10-CU-NEXT: s_clause 0x1
11221 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
11222 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
11223 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
11224 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
11225 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
11226 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
11227 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
11228 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
11229 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
11230 ; GFX10-CU-NEXT: s_endpgm
11308 ; GFX11-CU-LABEL: global_singlethread_one_as_seq_cst_monotonic_ret_cmpxchg:
11309 ; GFX11-CU: ; %bb.0: ; %entry
11310 ; GFX11-CU-NEXT: s_clause 0x1
11311 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
11312 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
11313 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
11314 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
11315 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
11316 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
11317 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
11318 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
11319 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
11320 ; GFX11-CU-NEXT: s_endpgm
11377 ; GFX10-CU-LABEL: global_singlethread_one_as_monotonic_acquire_ret_cmpxchg:
11378 ; GFX10-CU: ; %bb.0: ; %entry
11379 ; GFX10-CU-NEXT: s_clause 0x1
11380 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
11381 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
11382 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
11383 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
11384 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
11385 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
11386 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
11387 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
11388 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
11389 ; GFX10-CU-NEXT: s_endpgm
11467 ; GFX11-CU-LABEL: global_singlethread_one_as_monotonic_acquire_ret_cmpxchg:
11468 ; GFX11-CU: ; %bb.0: ; %entry
11469 ; GFX11-CU-NEXT: s_clause 0x1
11470 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
11471 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
11472 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
11473 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
11474 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
11475 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
11476 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
11477 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
11478 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
11479 ; GFX11-CU-NEXT: s_endpgm
11536 ; GFX10-CU-LABEL: global_singlethread_one_as_acquire_acquire_ret_cmpxchg:
11537 ; GFX10-CU: ; %bb.0: ; %entry
11538 ; GFX10-CU-NEXT: s_clause 0x1
11539 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
11540 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
11541 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
11542 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
11543 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
11544 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
11545 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
11546 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
11547 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
11548 ; GFX10-CU-NEXT: s_endpgm
11626 ; GFX11-CU-LABEL: global_singlethread_one_as_acquire_acquire_ret_cmpxchg:
11627 ; GFX11-CU: ; %bb.0: ; %entry
11628 ; GFX11-CU-NEXT: s_clause 0x1
11629 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
11630 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
11631 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
11632 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
11633 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
11634 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
11635 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
11636 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
11637 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
11638 ; GFX11-CU-NEXT: s_endpgm
11695 ; GFX10-CU-LABEL: global_singlethread_one_as_release_acquire_ret_cmpxchg:
11696 ; GFX10-CU: ; %bb.0: ; %entry
11697 ; GFX10-CU-NEXT: s_clause 0x1
11698 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
11699 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
11700 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
11701 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
11702 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
11703 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
11704 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
11705 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
11706 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
11707 ; GFX10-CU-NEXT: s_endpgm
11785 ; GFX11-CU-LABEL: global_singlethread_one_as_release_acquire_ret_cmpxchg:
11786 ; GFX11-CU: ; %bb.0: ; %entry
11787 ; GFX11-CU-NEXT: s_clause 0x1
11788 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
11789 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
11790 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
11791 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
11792 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
11793 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
11794 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
11795 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
11796 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
11797 ; GFX11-CU-NEXT: s_endpgm
11854 ; GFX10-CU-LABEL: global_singlethread_one_as_acq_rel_acquire_ret_cmpxchg:
11855 ; GFX10-CU: ; %bb.0: ; %entry
11856 ; GFX10-CU-NEXT: s_clause 0x1
11857 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
11858 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
11859 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
11860 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
11861 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
11862 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
11863 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
11864 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
11865 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
11866 ; GFX10-CU-NEXT: s_endpgm
11944 ; GFX11-CU-LABEL: global_singlethread_one_as_acq_rel_acquire_ret_cmpxchg:
11945 ; GFX11-CU: ; %bb.0: ; %entry
11946 ; GFX11-CU-NEXT: s_clause 0x1
11947 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
11948 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
11949 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
11950 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
11951 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
11952 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
11953 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
11954 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
11955 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
11956 ; GFX11-CU-NEXT: s_endpgm
12013 ; GFX10-CU-LABEL: global_singlethread_one_as_seq_cst_acquire_ret_cmpxchg:
12014 ; GFX10-CU: ; %bb.0: ; %entry
12015 ; GFX10-CU-NEXT: s_clause 0x1
12016 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
12017 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
12018 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
12019 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
12020 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
12021 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
12022 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
12023 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
12024 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
12025 ; GFX10-CU-NEXT: s_endpgm
12103 ; GFX11-CU-LABEL: global_singlethread_one_as_seq_cst_acquire_ret_cmpxchg:
12104 ; GFX11-CU: ; %bb.0: ; %entry
12105 ; GFX11-CU-NEXT: s_clause 0x1
12106 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
12107 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
12108 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
12109 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
12110 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
12111 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
12112 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
12113 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
12114 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
12115 ; GFX11-CU-NEXT: s_endpgm
12172 ; GFX10-CU-LABEL: global_singlethread_one_as_monotonic_seq_cst_ret_cmpxchg:
12173 ; GFX10-CU: ; %bb.0: ; %entry
12174 ; GFX10-CU-NEXT: s_clause 0x1
12175 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
12176 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
12177 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
12178 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
12179 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
12180 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
12181 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
12182 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
12183 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
12184 ; GFX10-CU-NEXT: s_endpgm
12262 ; GFX11-CU-LABEL: global_singlethread_one_as_monotonic_seq_cst_ret_cmpxchg:
12263 ; GFX11-CU: ; %bb.0: ; %entry
12264 ; GFX11-CU-NEXT: s_clause 0x1
12265 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
12266 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
12267 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
12268 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
12269 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
12270 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
12271 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
12272 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
12273 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
12274 ; GFX11-CU-NEXT: s_endpgm
12331 ; GFX10-CU-LABEL: global_singlethread_one_as_acquire_seq_cst_ret_cmpxchg:
12332 ; GFX10-CU: ; %bb.0: ; %entry
12333 ; GFX10-CU-NEXT: s_clause 0x1
12334 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
12335 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
12336 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
12337 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
12338 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
12339 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
12340 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
12341 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
12342 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
12343 ; GFX10-CU-NEXT: s_endpgm
12421 ; GFX11-CU-LABEL: global_singlethread_one_as_acquire_seq_cst_ret_cmpxchg:
12422 ; GFX11-CU: ; %bb.0: ; %entry
12423 ; GFX11-CU-NEXT: s_clause 0x1
12424 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
12425 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
12426 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
12427 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
12428 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
12429 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
12430 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
12431 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
12432 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
12433 ; GFX11-CU-NEXT: s_endpgm
12490 ; GFX10-CU-LABEL: global_singlethread_one_as_release_seq_cst_ret_cmpxchg:
12491 ; GFX10-CU: ; %bb.0: ; %entry
12492 ; GFX10-CU-NEXT: s_clause 0x1
12493 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
12494 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
12495 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
12496 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
12497 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
12498 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
12499 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
12500 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
12501 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
12502 ; GFX10-CU-NEXT: s_endpgm
12580 ; GFX11-CU-LABEL: global_singlethread_one_as_release_seq_cst_ret_cmpxchg:
12581 ; GFX11-CU: ; %bb.0: ; %entry
12582 ; GFX11-CU-NEXT: s_clause 0x1
12583 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
12584 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
12585 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
12586 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
12587 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
12588 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
12589 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
12590 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
12591 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
12592 ; GFX11-CU-NEXT: s_endpgm
12649 ; GFX10-CU-LABEL: global_singlethread_one_as_acq_rel_seq_cst_ret_cmpxchg:
12650 ; GFX10-CU: ; %bb.0: ; %entry
12651 ; GFX10-CU-NEXT: s_clause 0x1
12652 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
12653 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
12654 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
12655 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
12656 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
12657 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
12658 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
12659 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
12660 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
12661 ; GFX10-CU-NEXT: s_endpgm
12739 ; GFX11-CU-LABEL: global_singlethread_one_as_acq_rel_seq_cst_ret_cmpxchg:
12740 ; GFX11-CU: ; %bb.0: ; %entry
12741 ; GFX11-CU-NEXT: s_clause 0x1
12742 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
12743 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
12744 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
12745 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
12746 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
12747 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
12748 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
12749 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
12750 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
12751 ; GFX11-CU-NEXT: s_endpgm
12808 ; GFX10-CU-LABEL: global_singlethread_one_as_seq_cst_seq_cst_ret_cmpxchg:
12809 ; GFX10-CU: ; %bb.0: ; %entry
12810 ; GFX10-CU-NEXT: s_clause 0x1
12811 ; GFX10-CU-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
12812 ; GFX10-CU-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
12813 ; GFX10-CU-NEXT: v_mov_b32_e32 v2, 0
12814 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
12815 ; GFX10-CU-NEXT: v_mov_b32_e32 v0, s0
12816 ; GFX10-CU-NEXT: v_mov_b32_e32 v1, s1
12817 ; GFX10-CU-NEXT: global_atomic_cmpswap v0, v2, v[0:1], s[2:3] offset:16 glc
12818 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
12819 ; GFX10-CU-NEXT: global_store_dword v2, v0, s[2:3]
12820 ; GFX10-CU-NEXT: s_endpgm
12898 ; GFX11-CU-LABEL: global_singlethread_one_as_seq_cst_seq_cst_ret_cmpxchg:
12899 ; GFX11-CU: ; %bb.0: ; %entry
12900 ; GFX11-CU-NEXT: s_clause 0x1
12901 ; GFX11-CU-NEXT: s_load_b64 s[2:3], s[0:1], 0x8
12902 ; GFX11-CU-NEXT: s_load_b64 s[0:1], s[0:1], 0x0
12903 ; GFX11-CU-NEXT: v_mov_b32_e32 v2, 0
12904 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
12905 ; GFX11-CU-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3
12906 ; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v0, v2, v[0:1], s[0:1] offset:16 glc
12907 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
12908 ; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
12909 ; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
12910 ; GFX11-CU-NEXT: s_endpgm