Lines Matching refs:VI
3 …l -mtriple=amdgcn-amd-amdhsa -mcpu=tonga -verify-machineinstrs < %s | FileCheck -check-prefix=VI %s
35 ; VI-LABEL: lds_atomic_dec_ret_i32:
36 ; VI: ; %bb.0:
37 ; VI-NEXT: s_load_dword s2, s[4:5], 0x8
38 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
39 ; VI-NEXT: v_mov_b32_e32 v0, 42
40 ; VI-NEXT: s_mov_b32 m0, -1
41 ; VI-NEXT: s_waitcnt lgkmcnt(0)
42 ; VI-NEXT: v_mov_b32_e32 v1, s2
43 ; VI-NEXT: ds_dec_rtn_u32 v2, v1, v0
44 ; VI-NEXT: v_mov_b32_e32 v0, s0
45 ; VI-NEXT: v_mov_b32_e32 v1, s1
46 ; VI-NEXT: s_waitcnt lgkmcnt(0)
47 ; VI-NEXT: flat_store_dword v[0:1], v2
48 ; VI-NEXT: s_endpgm
83 ; VI-LABEL: lds_atomic_dec_ret_i32_offset:
84 ; VI: ; %bb.0:
85 ; VI-NEXT: s_load_dword s2, s[4:5], 0x8
86 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
87 ; VI-NEXT: v_mov_b32_e32 v0, 42
88 ; VI-NEXT: s_mov_b32 m0, -1
89 ; VI-NEXT: s_waitcnt lgkmcnt(0)
90 ; VI-NEXT: v_mov_b32_e32 v1, s2
91 ; VI-NEXT: ds_dec_rtn_u32 v2, v1, v0 offset:16
92 ; VI-NEXT: v_mov_b32_e32 v0, s0
93 ; VI-NEXT: v_mov_b32_e32 v1, s1
94 ; VI-NEXT: s_waitcnt lgkmcnt(0)
95 ; VI-NEXT: flat_store_dword v[0:1], v2
96 ; VI-NEXT: s_endpgm
145 ; VI-LABEL: lds_atomic_dec_noret_i32:
146 ; VI: ; %bb.0:
147 ; VI-NEXT: s_load_dword s0, s[4:5], 0x0
148 ; VI-NEXT: v_mov_b32_e32 v0, 42
149 ; VI-NEXT: s_mov_b32 m0, -1
150 ; VI-NEXT: s_waitcnt lgkmcnt(0)
151 ; VI-NEXT: v_mov_b32_e32 v1, s0
152 ; VI-NEXT: ds_dec_u32 v1, v0
153 ; VI-NEXT: s_endpgm
169 ; VI-LABEL: lds_atomic_dec_noret_i32_offset:
170 ; VI: ; %bb.0:
171 ; VI-NEXT: s_load_dword s0, s[4:5], 0x0
172 ; VI-NEXT: v_mov_b32_e32 v0, 42
173 ; VI-NEXT: s_mov_b32 m0, -1
174 ; VI-NEXT: s_waitcnt lgkmcnt(0)
175 ; VI-NEXT: v_mov_b32_e32 v1, s0
176 ; VI-NEXT: ds_dec_u32 v1, v0 offset:16
177 ; VI-NEXT: s_endpgm
207 ; VI-LABEL: global_atomic_dec_ret_i32:
208 ; VI: ; %bb.0:
209 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
210 ; VI-NEXT: v_mov_b32_e32 v2, 42
211 ; VI-NEXT: s_waitcnt lgkmcnt(0)
212 ; VI-NEXT: v_mov_b32_e32 v0, s2
213 ; VI-NEXT: v_mov_b32_e32 v1, s3
214 ; VI-NEXT: flat_atomic_dec v2, v[0:1], v2 glc
215 ; VI-NEXT: v_mov_b32_e32 v0, s0
216 ; VI-NEXT: v_mov_b32_e32 v1, s1
217 ; VI-NEXT: s_waitcnt vmcnt(0)
218 ; VI-NEXT: flat_store_dword v[0:1], v2
219 ; VI-NEXT: s_endpgm
255 ; VI-LABEL: global_atomic_dec_ret_i32_offset:
256 ; VI: ; %bb.0:
257 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
258 ; VI-NEXT: v_mov_b32_e32 v2, 42
259 ; VI-NEXT: s_waitcnt lgkmcnt(0)
260 ; VI-NEXT: s_add_u32 s2, s2, 16
261 ; VI-NEXT: s_addc_u32 s3, s3, 0
262 ; VI-NEXT: v_mov_b32_e32 v0, s2
263 ; VI-NEXT: v_mov_b32_e32 v1, s3
264 ; VI-NEXT: flat_atomic_dec v2, v[0:1], v2 glc
265 ; VI-NEXT: v_mov_b32_e32 v0, s0
266 ; VI-NEXT: v_mov_b32_e32 v1, s1
267 ; VI-NEXT: s_waitcnt vmcnt(0)
268 ; VI-NEXT: flat_store_dword v[0:1], v2
269 ; VI-NEXT: s_endpgm
302 ; VI-LABEL: global_atomic_dec_noret_i32:
303 ; VI: ; %bb.0:
304 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
305 ; VI-NEXT: v_mov_b32_e32 v2, 42
306 ; VI-NEXT: s_waitcnt lgkmcnt(0)
307 ; VI-NEXT: v_mov_b32_e32 v0, s0
308 ; VI-NEXT: v_mov_b32_e32 v1, s1
309 ; VI-NEXT: flat_atomic_dec v[0:1], v2
310 ; VI-NEXT: s_endpgm
337 ; VI-LABEL: global_atomic_dec_noret_i32_offset:
338 ; VI: ; %bb.0:
339 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
340 ; VI-NEXT: v_mov_b32_e32 v2, 42
341 ; VI-NEXT: s_waitcnt lgkmcnt(0)
342 ; VI-NEXT: s_add_u32 s0, s0, 16
343 ; VI-NEXT: s_addc_u32 s1, s1, 0
344 ; VI-NEXT: v_mov_b32_e32 v0, s0
345 ; VI-NEXT: v_mov_b32_e32 v1, s1
346 ; VI-NEXT: flat_atomic_dec v[0:1], v2
347 ; VI-NEXT: s_endpgm
386 ; VI-LABEL: global_atomic_dec_ret_i32_offset_addr64:
387 ; VI: ; %bb.0:
388 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
389 ; VI-NEXT: v_lshlrev_b32_e32 v2, 2, v0
390 ; VI-NEXT: v_mov_b32_e32 v3, 42
391 ; VI-NEXT: s_waitcnt lgkmcnt(0)
392 ; VI-NEXT: v_mov_b32_e32 v0, s2
393 ; VI-NEXT: v_mov_b32_e32 v1, s3
394 ; VI-NEXT: v_add_u32_e32 v0, vcc, v0, v2
395 ; VI-NEXT: v_addc_u32_e32 v1, vcc, 0, v1, vcc
396 ; VI-NEXT: v_add_u32_e32 v0, vcc, 20, v0
397 ; VI-NEXT: v_addc_u32_e32 v1, vcc, 0, v1, vcc
398 ; VI-NEXT: flat_atomic_dec v3, v[0:1], v3 glc
399 ; VI-NEXT: v_mov_b32_e32 v0, s0
400 ; VI-NEXT: v_mov_b32_e32 v1, s1
401 ; VI-NEXT: v_add_u32_e32 v0, vcc, v0, v2
402 ; VI-NEXT: v_addc_u32_e32 v1, vcc, 0, v1, vcc
403 ; VI-NEXT: s_waitcnt vmcnt(0)
404 ; VI-NEXT: flat_store_dword v[0:1], v3
405 ; VI-NEXT: s_endpgm
455 ; VI-LABEL: global_atomic_dec_noret_i32_offset_addr64:
456 ; VI: ; %bb.0:
457 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
458 ; VI-NEXT: v_lshlrev_b32_e32 v2, 2, v0
459 ; VI-NEXT: s_waitcnt lgkmcnt(0)
460 ; VI-NEXT: v_mov_b32_e32 v0, s0
461 ; VI-NEXT: v_mov_b32_e32 v1, s1
462 ; VI-NEXT: v_add_u32_e32 v0, vcc, v0, v2
463 ; VI-NEXT: v_addc_u32_e32 v1, vcc, 0, v1, vcc
464 ; VI-NEXT: v_add_u32_e32 v0, vcc, 20, v0
465 ; VI-NEXT: v_addc_u32_e32 v1, vcc, 0, v1, vcc
466 ; VI-NEXT: v_mov_b32_e32 v2, 42
467 ; VI-NEXT: flat_atomic_dec v[0:1], v2
468 ; VI-NEXT: s_endpgm
510 ; VI-LABEL: flat_atomic_dec_ret_i32:
511 ; VI: ; %bb.0:
512 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
513 ; VI-NEXT: v_mov_b32_e32 v2, 42
514 ; VI-NEXT: s_waitcnt lgkmcnt(0)
515 ; VI-NEXT: v_mov_b32_e32 v0, s2
516 ; VI-NEXT: v_mov_b32_e32 v1, s3
517 ; VI-NEXT: flat_atomic_dec v2, v[0:1], v2 glc
518 ; VI-NEXT: v_mov_b32_e32 v0, s0
519 ; VI-NEXT: v_mov_b32_e32 v1, s1
520 ; VI-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
521 ; VI-NEXT: flat_store_dword v[0:1], v2
522 ; VI-NEXT: s_endpgm
558 ; VI-LABEL: flat_atomic_dec_ret_i32_offset:
559 ; VI: ; %bb.0:
560 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
561 ; VI-NEXT: v_mov_b32_e32 v2, 42
562 ; VI-NEXT: s_waitcnt lgkmcnt(0)
563 ; VI-NEXT: s_add_u32 s2, s2, 16
564 ; VI-NEXT: s_addc_u32 s3, s3, 0
565 ; VI-NEXT: v_mov_b32_e32 v0, s2
566 ; VI-NEXT: v_mov_b32_e32 v1, s3
567 ; VI-NEXT: flat_atomic_dec v2, v[0:1], v2 glc
568 ; VI-NEXT: v_mov_b32_e32 v0, s0
569 ; VI-NEXT: v_mov_b32_e32 v1, s1
570 ; VI-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
571 ; VI-NEXT: flat_store_dword v[0:1], v2
572 ; VI-NEXT: s_endpgm
605 ; VI-LABEL: flat_atomic_dec_noret_i32:
606 ; VI: ; %bb.0:
607 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
608 ; VI-NEXT: v_mov_b32_e32 v2, 42
609 ; VI-NEXT: s_waitcnt lgkmcnt(0)
610 ; VI-NEXT: v_mov_b32_e32 v0, s0
611 ; VI-NEXT: v_mov_b32_e32 v1, s1
612 ; VI-NEXT: flat_atomic_dec v[0:1], v2
613 ; VI-NEXT: s_endpgm
640 ; VI-LABEL: flat_atomic_dec_noret_i32_offset:
641 ; VI: ; %bb.0:
642 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
643 ; VI-NEXT: v_mov_b32_e32 v2, 42
644 ; VI-NEXT: s_waitcnt lgkmcnt(0)
645 ; VI-NEXT: s_add_u32 s0, s0, 16
646 ; VI-NEXT: s_addc_u32 s1, s1, 0
647 ; VI-NEXT: v_mov_b32_e32 v0, s0
648 ; VI-NEXT: v_mov_b32_e32 v1, s1
649 ; VI-NEXT: flat_atomic_dec v[0:1], v2
650 ; VI-NEXT: s_endpgm
689 ; VI-LABEL: flat_atomic_dec_ret_i32_offset_addr64:
690 ; VI: ; %bb.0:
691 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
692 ; VI-NEXT: v_lshlrev_b32_e32 v2, 2, v0
693 ; VI-NEXT: v_mov_b32_e32 v3, 42
694 ; VI-NEXT: s_waitcnt lgkmcnt(0)
695 ; VI-NEXT: v_mov_b32_e32 v0, s2
696 ; VI-NEXT: v_mov_b32_e32 v1, s3
697 ; VI-NEXT: v_add_u32_e32 v0, vcc, v0, v2
698 ; VI-NEXT: v_addc_u32_e32 v1, vcc, 0, v1, vcc
699 ; VI-NEXT: v_add_u32_e32 v0, vcc, 20, v0
700 ; VI-NEXT: v_addc_u32_e32 v1, vcc, 0, v1, vcc
701 ; VI-NEXT: flat_atomic_dec v3, v[0:1], v3 glc
702 ; VI-NEXT: v_mov_b32_e32 v0, s0
703 ; VI-NEXT: v_mov_b32_e32 v1, s1
704 ; VI-NEXT: v_add_u32_e32 v0, vcc, v0, v2
705 ; VI-NEXT: v_addc_u32_e32 v1, vcc, 0, v1, vcc
706 ; VI-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
707 ; VI-NEXT: flat_store_dword v[0:1], v3
708 ; VI-NEXT: s_endpgm
758 ; VI-LABEL: flat_atomic_dec_noret_i32_offset_addr64:
759 ; VI: ; %bb.0:
760 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
761 ; VI-NEXT: v_lshlrev_b32_e32 v2, 2, v0
762 ; VI-NEXT: s_waitcnt lgkmcnt(0)
763 ; VI-NEXT: v_mov_b32_e32 v0, s0
764 ; VI-NEXT: v_mov_b32_e32 v1, s1
765 ; VI-NEXT: v_add_u32_e32 v0, vcc, v0, v2
766 ; VI-NEXT: v_addc_u32_e32 v1, vcc, 0, v1, vcc
767 ; VI-NEXT: v_add_u32_e32 v0, vcc, 20, v0
768 ; VI-NEXT: v_addc_u32_e32 v1, vcc, 0, v1, vcc
769 ; VI-NEXT: v_mov_b32_e32 v2, 42
770 ; VI-NEXT: flat_atomic_dec v[0:1], v2
771 ; VI-NEXT: s_endpgm
814 ; VI-LABEL: flat_atomic_dec_ret_i64:
815 ; VI: ; %bb.0:
816 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
817 ; VI-NEXT: v_mov_b32_e32 v0, 42
818 ; VI-NEXT: v_mov_b32_e32 v1, 0
819 ; VI-NEXT: s_waitcnt lgkmcnt(0)
820 ; VI-NEXT: v_mov_b32_e32 v2, s2
821 ; VI-NEXT: v_mov_b32_e32 v3, s3
822 ; VI-NEXT: flat_atomic_dec_x2 v[0:1], v[2:3], v[0:1] glc
823 ; VI-NEXT: v_mov_b32_e32 v3, s1
824 ; VI-NEXT: v_mov_b32_e32 v2, s0
825 ; VI-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
826 ; VI-NEXT: flat_store_dwordx2 v[2:3], v[0:1]
827 ; VI-NEXT: s_endpgm
865 ; VI-LABEL: flat_atomic_dec_ret_i64_offset:
866 ; VI: ; %bb.0:
867 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
868 ; VI-NEXT: v_mov_b32_e32 v0, 42
869 ; VI-NEXT: v_mov_b32_e32 v1, 0
870 ; VI-NEXT: s_waitcnt lgkmcnt(0)
871 ; VI-NEXT: s_add_u32 s2, s2, 32
872 ; VI-NEXT: s_addc_u32 s3, s3, 0
873 ; VI-NEXT: v_mov_b32_e32 v2, s2
874 ; VI-NEXT: v_mov_b32_e32 v3, s3
875 ; VI-NEXT: flat_atomic_dec_x2 v[0:1], v[2:3], v[0:1] glc
876 ; VI-NEXT: v_mov_b32_e32 v3, s1
877 ; VI-NEXT: v_mov_b32_e32 v2, s0
878 ; VI-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
879 ; VI-NEXT: flat_store_dwordx2 v[2:3], v[0:1]
880 ; VI-NEXT: s_endpgm
915 ; VI-LABEL: flat_atomic_dec_noret_i64:
916 ; VI: ; %bb.0:
917 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
918 ; VI-NEXT: v_mov_b32_e32 v0, 42
919 ; VI-NEXT: v_mov_b32_e32 v1, 0
920 ; VI-NEXT: s_waitcnt lgkmcnt(0)
921 ; VI-NEXT: v_mov_b32_e32 v3, s1
922 ; VI-NEXT: v_mov_b32_e32 v2, s0
923 ; VI-NEXT: flat_atomic_dec_x2 v[2:3], v[0:1]
924 ; VI-NEXT: s_endpgm
953 ; VI-LABEL: flat_atomic_dec_noret_i64_offset:
954 ; VI: ; %bb.0:
955 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
956 ; VI-NEXT: v_mov_b32_e32 v0, 42
957 ; VI-NEXT: v_mov_b32_e32 v1, 0
958 ; VI-NEXT: s_waitcnt lgkmcnt(0)
959 ; VI-NEXT: s_add_u32 s0, s0, 32
960 ; VI-NEXT: s_addc_u32 s1, s1, 0
961 ; VI-NEXT: v_mov_b32_e32 v3, s1
962 ; VI-NEXT: v_mov_b32_e32 v2, s0
963 ; VI-NEXT: flat_atomic_dec_x2 v[2:3], v[0:1]
964 ; VI-NEXT: s_endpgm
1005 ; VI-LABEL: flat_atomic_dec_ret_i64_offset_addr64:
1006 ; VI: ; %bb.0:
1007 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
1008 ; VI-NEXT: v_lshlrev_b32_e32 v4, 3, v0
1009 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1010 ; VI-NEXT: v_mov_b32_e32 v0, s2
1011 ; VI-NEXT: v_mov_b32_e32 v1, s3
1012 ; VI-NEXT: v_add_u32_e32 v2, vcc, v0, v4
1013 ; VI-NEXT: v_addc_u32_e32 v3, vcc, 0, v1, vcc
1014 ; VI-NEXT: v_mov_b32_e32 v0, 42
1015 ; VI-NEXT: v_add_u32_e32 v2, vcc, 40, v2
1016 ; VI-NEXT: v_mov_b32_e32 v1, 0
1017 ; VI-NEXT: v_addc_u32_e32 v3, vcc, 0, v3, vcc
1018 ; VI-NEXT: flat_atomic_dec_x2 v[0:1], v[2:3], v[0:1] glc
1019 ; VI-NEXT: v_mov_b32_e32 v3, s1
1020 ; VI-NEXT: v_mov_b32_e32 v2, s0
1021 ; VI-NEXT: v_add_u32_e32 v2, vcc, v2, v4
1022 ; VI-NEXT: v_addc_u32_e32 v3, vcc, 0, v3, vcc
1023 ; VI-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1024 ; VI-NEXT: flat_store_dwordx2 v[2:3], v[0:1]
1025 ; VI-NEXT: s_endpgm
1077 ; VI-LABEL: flat_atomic_dec_noret_i64_offset_addr64:
1078 ; VI: ; %bb.0:
1079 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1080 ; VI-NEXT: v_lshlrev_b32_e32 v2, 3, v0
1081 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1082 ; VI-NEXT: v_mov_b32_e32 v0, s0
1083 ; VI-NEXT: v_mov_b32_e32 v1, s1
1084 ; VI-NEXT: v_add_u32_e32 v2, vcc, v0, v2
1085 ; VI-NEXT: v_addc_u32_e32 v3, vcc, 0, v1, vcc
1086 ; VI-NEXT: v_mov_b32_e32 v0, 42
1087 ; VI-NEXT: v_add_u32_e32 v2, vcc, 40, v2
1088 ; VI-NEXT: v_mov_b32_e32 v1, 0
1089 ; VI-NEXT: v_addc_u32_e32 v3, vcc, 0, v3, vcc
1090 ; VI-NEXT: flat_atomic_dec_x2 v[2:3], v[0:1]
1091 ; VI-NEXT: s_endpgm
1139 ; VI-LABEL: atomic_dec_shl_base_lds_0:
1140 ; VI: ; %bb.0:
1141 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
1142 ; VI-NEXT: v_lshlrev_b32_e32 v1, 2, v0
1143 ; VI-NEXT: v_mov_b32_e32 v2, 9
1144 ; VI-NEXT: s_mov_b32 m0, -1
1145 ; VI-NEXT: ds_dec_rtn_u32 v2, v1, v2 offset:8
1146 ; VI-NEXT: v_add_u32_e32 v3, vcc, 2, v0
1147 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1148 ; VI-NEXT: v_mov_b32_e32 v0, s2
1149 ; VI-NEXT: v_mov_b32_e32 v1, s3
1150 ; VI-NEXT: flat_store_dword v[0:1], v3
1151 ; VI-NEXT: v_mov_b32_e32 v0, s0
1152 ; VI-NEXT: v_mov_b32_e32 v1, s1
1153 ; VI-NEXT: flat_store_dword v[0:1], v2
1154 ; VI-NEXT: s_endpgm
1198 ; VI-LABEL: lds_atomic_dec_ret_i64:
1199 ; VI: ; %bb.0:
1200 ; VI-NEXT: s_load_dword s2, s[4:5], 0x8
1201 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1202 ; VI-NEXT: v_mov_b32_e32 v0, 42
1203 ; VI-NEXT: v_mov_b32_e32 v1, 0
1204 ; VI-NEXT: s_mov_b32 m0, -1
1205 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1206 ; VI-NEXT: v_mov_b32_e32 v2, s2
1207 ; VI-NEXT: ds_dec_rtn_u64 v[0:1], v2, v[0:1]
1208 ; VI-NEXT: v_mov_b32_e32 v3, s1
1209 ; VI-NEXT: v_mov_b32_e32 v2, s0
1210 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1211 ; VI-NEXT: flat_store_dwordx2 v[2:3], v[0:1]
1212 ; VI-NEXT: s_endpgm
1249 ; VI-LABEL: lds_atomic_dec_ret_i64_offset:
1250 ; VI: ; %bb.0:
1251 ; VI-NEXT: s_load_dword s2, s[4:5], 0x8
1252 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1253 ; VI-NEXT: v_mov_b32_e32 v0, 42
1254 ; VI-NEXT: v_mov_b32_e32 v1, 0
1255 ; VI-NEXT: s_mov_b32 m0, -1
1256 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1257 ; VI-NEXT: v_mov_b32_e32 v2, s2
1258 ; VI-NEXT: ds_dec_rtn_u64 v[0:1], v2, v[0:1] offset:32
1259 ; VI-NEXT: v_mov_b32_e32 v3, s1
1260 ; VI-NEXT: v_mov_b32_e32 v2, s0
1261 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1262 ; VI-NEXT: flat_store_dwordx2 v[2:3], v[0:1]
1263 ; VI-NEXT: s_endpgm
1297 ; VI-LABEL: lds_atomic_dec_noret_i64:
1298 ; VI: ; %bb.0:
1299 ; VI-NEXT: s_load_dword s0, s[4:5], 0x0
1300 ; VI-NEXT: v_mov_b32_e32 v0, 42
1301 ; VI-NEXT: v_mov_b32_e32 v1, 0
1302 ; VI-NEXT: s_mov_b32 m0, -1
1303 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1304 ; VI-NEXT: v_mov_b32_e32 v2, s0
1305 ; VI-NEXT: ds_dec_u64 v2, v[0:1]
1306 ; VI-NEXT: s_endpgm
1332 ; VI-LABEL: lds_atomic_dec_noret_i64_offset:
1333 ; VI: ; %bb.0:
1334 ; VI-NEXT: s_load_dword s0, s[4:5], 0x0
1335 ; VI-NEXT: v_mov_b32_e32 v0, 42
1336 ; VI-NEXT: v_mov_b32_e32 v1, 0
1337 ; VI-NEXT: s_mov_b32 m0, -1
1338 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1339 ; VI-NEXT: v_mov_b32_e32 v2, s0
1340 ; VI-NEXT: ds_dec_u64 v2, v[0:1] offset:32
1341 ; VI-NEXT: s_endpgm
1373 ; VI-LABEL: global_atomic_dec_ret_i64:
1374 ; VI: ; %bb.0:
1375 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
1376 ; VI-NEXT: v_mov_b32_e32 v0, 42
1377 ; VI-NEXT: v_mov_b32_e32 v1, 0
1378 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1379 ; VI-NEXT: v_mov_b32_e32 v2, s2
1380 ; VI-NEXT: v_mov_b32_e32 v3, s3
1381 ; VI-NEXT: flat_atomic_dec_x2 v[0:1], v[2:3], v[0:1] glc
1382 ; VI-NEXT: v_mov_b32_e32 v3, s1
1383 ; VI-NEXT: v_mov_b32_e32 v2, s0
1384 ; VI-NEXT: s_waitcnt vmcnt(0)
1385 ; VI-NEXT: flat_store_dwordx2 v[2:3], v[0:1]
1386 ; VI-NEXT: s_endpgm
1424 ; VI-LABEL: global_atomic_dec_ret_i64_offset:
1425 ; VI: ; %bb.0:
1426 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
1427 ; VI-NEXT: v_mov_b32_e32 v0, 42
1428 ; VI-NEXT: v_mov_b32_e32 v1, 0
1429 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1430 ; VI-NEXT: s_add_u32 s2, s2, 32
1431 ; VI-NEXT: s_addc_u32 s3, s3, 0
1432 ; VI-NEXT: v_mov_b32_e32 v2, s2
1433 ; VI-NEXT: v_mov_b32_e32 v3, s3
1434 ; VI-NEXT: flat_atomic_dec_x2 v[0:1], v[2:3], v[0:1] glc
1435 ; VI-NEXT: v_mov_b32_e32 v3, s1
1436 ; VI-NEXT: v_mov_b32_e32 v2, s0
1437 ; VI-NEXT: s_waitcnt vmcnt(0)
1438 ; VI-NEXT: flat_store_dwordx2 v[2:3], v[0:1]
1439 ; VI-NEXT: s_endpgm
1474 ; VI-LABEL: global_atomic_dec_noret_i64:
1475 ; VI: ; %bb.0:
1476 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1477 ; VI-NEXT: v_mov_b32_e32 v0, 42
1478 ; VI-NEXT: v_mov_b32_e32 v1, 0
1479 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1480 ; VI-NEXT: v_mov_b32_e32 v3, s1
1481 ; VI-NEXT: v_mov_b32_e32 v2, s0
1482 ; VI-NEXT: flat_atomic_dec_x2 v[2:3], v[0:1]
1483 ; VI-NEXT: s_endpgm
1512 ; VI-LABEL: global_atomic_dec_noret_i64_offset:
1513 ; VI: ; %bb.0:
1514 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1515 ; VI-NEXT: v_mov_b32_e32 v0, 42
1516 ; VI-NEXT: v_mov_b32_e32 v1, 0
1517 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1518 ; VI-NEXT: s_add_u32 s0, s0, 32
1519 ; VI-NEXT: s_addc_u32 s1, s1, 0
1520 ; VI-NEXT: v_mov_b32_e32 v3, s1
1521 ; VI-NEXT: v_mov_b32_e32 v2, s0
1522 ; VI-NEXT: flat_atomic_dec_x2 v[2:3], v[0:1]
1523 ; VI-NEXT: s_endpgm
1564 ; VI-LABEL: global_atomic_dec_ret_i64_offset_addr64:
1565 ; VI: ; %bb.0:
1566 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
1567 ; VI-NEXT: v_lshlrev_b32_e32 v4, 3, v0
1568 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1569 ; VI-NEXT: v_mov_b32_e32 v0, s2
1570 ; VI-NEXT: v_mov_b32_e32 v1, s3
1571 ; VI-NEXT: v_add_u32_e32 v2, vcc, v0, v4
1572 ; VI-NEXT: v_addc_u32_e32 v3, vcc, 0, v1, vcc
1573 ; VI-NEXT: v_mov_b32_e32 v0, 42
1574 ; VI-NEXT: v_add_u32_e32 v2, vcc, 40, v2
1575 ; VI-NEXT: v_mov_b32_e32 v1, 0
1576 ; VI-NEXT: v_addc_u32_e32 v3, vcc, 0, v3, vcc
1577 ; VI-NEXT: flat_atomic_dec_x2 v[0:1], v[2:3], v[0:1] glc
1578 ; VI-NEXT: v_mov_b32_e32 v3, s1
1579 ; VI-NEXT: v_mov_b32_e32 v2, s0
1580 ; VI-NEXT: v_add_u32_e32 v2, vcc, v2, v4
1581 ; VI-NEXT: v_addc_u32_e32 v3, vcc, 0, v3, vcc
1582 ; VI-NEXT: s_waitcnt vmcnt(0)
1583 ; VI-NEXT: flat_store_dwordx2 v[2:3], v[0:1]
1584 ; VI-NEXT: s_endpgm
1636 ; VI-LABEL: global_atomic_dec_noret_i64_offset_addr64:
1637 ; VI: ; %bb.0:
1638 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1639 ; VI-NEXT: v_lshlrev_b32_e32 v2, 3, v0
1640 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1641 ; VI-NEXT: v_mov_b32_e32 v0, s0
1642 ; VI-NEXT: v_mov_b32_e32 v1, s1
1643 ; VI-NEXT: v_add_u32_e32 v2, vcc, v0, v2
1644 ; VI-NEXT: v_addc_u32_e32 v3, vcc, 0, v1, vcc
1645 ; VI-NEXT: v_mov_b32_e32 v0, 42
1646 ; VI-NEXT: v_add_u32_e32 v2, vcc, 40, v2
1647 ; VI-NEXT: v_mov_b32_e32 v1, 0
1648 ; VI-NEXT: v_addc_u32_e32 v3, vcc, 0, v3, vcc
1649 ; VI-NEXT: flat_atomic_dec_x2 v[2:3], v[0:1]
1650 ; VI-NEXT: s_endpgm
1699 ; VI-LABEL: atomic_dec_shl_base_lds_0_i64:
1700 ; VI: ; %bb.0:
1701 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
1702 ; VI-NEXT: v_mov_b32_e32 v1, 9
1703 ; VI-NEXT: v_lshlrev_b32_e32 v3, 3, v0
1704 ; VI-NEXT: v_mov_b32_e32 v2, 0
1705 ; VI-NEXT: s_mov_b32 m0, -1
1706 ; VI-NEXT: ds_dec_rtn_u64 v[1:2], v3, v[1:2] offset:16
1707 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1708 ; VI-NEXT: v_mov_b32_e32 v4, s3
1709 ; VI-NEXT: v_add_u32_e32 v0, vcc, 2, v0
1710 ; VI-NEXT: v_mov_b32_e32 v3, s2
1711 ; VI-NEXT: flat_store_dword v[3:4], v0
1712 ; VI-NEXT: v_mov_b32_e32 v4, s1
1713 ; VI-NEXT: v_mov_b32_e32 v3, s0
1714 ; VI-NEXT: flat_store_dwordx2 v[3:4], v[1:2]
1715 ; VI-NEXT: s_endpgm