Lines Matching refs:DL
5 … llc -mtriple=amdgcn -mcpu=gfx906 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX9-DL %s
6 …riple=amdgcn -mcpu=gfx1011 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX10-DL-XNACK %s
7 …riple=amdgcn -mcpu=gfx1012 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX10-DL-XNACK %s
8 …ple=amdgcn -mcpu=gfx1030 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX10-DL-NOXNACK %s
9 …ple=amdgcn -mcpu=gfx1031 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX10-DL-NOXNACK %s
167 ; GFX9-DL-LABEL: idot8_acc32:
168 ; GFX9-DL: ; %bb.0: ; %entry
169 ; GFX9-DL-NEXT: s_mov_b32 s8, SCRATCH_RSRC_DWORD0
170 ; GFX9-DL-NEXT: s_mov_b32 s9, SCRATCH_RSRC_DWORD1
171 ; GFX9-DL-NEXT: s_mov_b32 s10, -1
172 ; GFX9-DL-NEXT: s_mov_b32 s11, 0xe00000
173 ; GFX9-DL-NEXT: s_add_u32 s8, s8, s3
174 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
175 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
176 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
177 ; GFX9-DL-NEXT: s_addc_u32 s9, s9, 0
178 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
179 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
180 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
181 ; GFX9-DL-NEXT: s_load_dword s0, s[2:3], 0x0
182 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
183 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
184 ; GFX9-DL-NEXT: v_dot8_i32_i4 v1, v1, v2, s0
185 ; GFX9-DL-NEXT: global_store_dword v0, v1, s[2:3]
186 ; GFX9-DL-NEXT: s_endpgm
188 ; GFX10-DL-XNACK-LABEL: idot8_acc32:
189 ; GFX10-DL-XNACK: ; %bb.0: ; %entry
190 ; GFX10-DL-XNACK-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
191 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b32_e32 v0, 2, v0
192 ; GFX10-DL-XNACK-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
193 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s8, SCRATCH_RSRC_DWORD0
194 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s9, SCRATCH_RSRC_DWORD1
195 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s10, -1
196 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s11, 0x31c16000
197 ; GFX10-DL-XNACK-NEXT: s_add_u32 s8, s8, s3
198 ; GFX10-DL-XNACK-NEXT: s_addc_u32 s9, s9, 0
199 ; GFX10-DL-XNACK-NEXT: s_waitcnt lgkmcnt(0)
200 ; GFX10-DL-XNACK-NEXT: s_clause 0x1
201 ; GFX10-DL-XNACK-NEXT: global_load_dword v1, v0, s[4:5]
202 ; GFX10-DL-XNACK-NEXT: global_load_dword v2, v0, s[6:7]
203 ; GFX10-DL-XNACK-NEXT: v_mov_b32_e32 v0, 0
204 ; GFX10-DL-XNACK-NEXT: s_load_dword s2, s[0:1], 0x0
205 ; GFX10-DL-XNACK-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
206 ; GFX10-DL-XNACK-NEXT: v_dot8_i32_i4 v1, v1, v2, s2
207 ; GFX10-DL-XNACK-NEXT: global_store_dword v0, v1, s[0:1]
208 ; GFX10-DL-XNACK-NEXT: s_endpgm
210 ; GFX10-DL-NOXNACK-LABEL: idot8_acc32:
211 ; GFX10-DL-NOXNACK: ; %bb.0: ; %entry
212 ; GFX10-DL-NOXNACK-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
213 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b32_e32 v0, 2, v0
214 ; GFX10-DL-NOXNACK-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
215 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s8, SCRATCH_RSRC_DWORD0
216 ; GFX10-DL-NOXNACK-NEXT: v_mov_b32_e32 v2, 0
217 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s9, SCRATCH_RSRC_DWORD1
218 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s10, -1
219 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s11, 0x31c16000
220 ; GFX10-DL-NOXNACK-NEXT: s_add_u32 s8, s8, s3
221 ; GFX10-DL-NOXNACK-NEXT: s_addc_u32 s9, s9, 0
222 ; GFX10-DL-NOXNACK-NEXT: s_waitcnt lgkmcnt(0)
223 ; GFX10-DL-NOXNACK-NEXT: s_clause 0x1
224 ; GFX10-DL-NOXNACK-NEXT: global_load_dword v1, v0, s[4:5]
225 ; GFX10-DL-NOXNACK-NEXT: global_load_dword v0, v0, s[6:7]
226 ; GFX10-DL-NOXNACK-NEXT: s_load_dword s2, s[0:1], 0x0
227 ; GFX10-DL-NOXNACK-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
228 ; GFX10-DL-NOXNACK-NEXT: v_dot8_i32_i4 v0, v1, v0, s2
229 ; GFX10-DL-NOXNACK-NEXT: global_store_dword v2, v0, s[0:1]
230 ; GFX10-DL-NOXNACK-NEXT: s_endpgm
231 ; GFX10-DL-LABEL: idot8_acc32:
232 ; GFX10-DL: ; %bb.0: ; %entry
233 ; GFX10-DL-NEXT: s_mov_b32 s8, SCRATCH_RSRC_DWORD0
234 ; GFX10-DL-NEXT: s_mov_b32 s9, SCRATCH_RSRC_DWORD1
235 ; GFX10-DL-NEXT: s_mov_b32 s10, -1
236 ; GFX10-DL-NEXT: s_mov_b32 s11, 0x31c16000
237 ; GFX10-DL-NEXT: s_add_u32 s8, s8, s3
238 ; GFX10-DL-NEXT: s_clause 0x1
239 ; GFX10-DL-NEXT: s_load_dwordx2 s[4:5], s[0:1], 0x34
240 ; GFX10-DL-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24
241 ; GFX10-DL-NEXT: v_mov_b32_e32 v1, 0
242 ; GFX10-DL-NEXT: s_addc_u32 s9, s9, 0
243 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
244 ; GFX10-DL-NEXT: s_load_dword s6, s[4:5], 0x0
245 ; GFX10-DL-NEXT: s_load_dword s0, s[0:1], 0x0
246 ; GFX10-DL-NEXT: s_load_dword s1, s[2:3], 0x0
247 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
248 ; GFX10-DL-NEXT: v_mov_b32_e32 v0, s6
249 ; GFX10-DL-NEXT: v_dot8_i32_i4 v0, s0, s1, v0
250 ; GFX10-DL-NEXT: global_store_dword v1, v0, s[4:5]
251 ; GFX10-DL-NEXT: s_endpgm
547 ; GFX9-DL-LABEL: idot8_acc16:
548 ; GFX9-DL: ; %bb.0: ; %entry
549 ; GFX9-DL-NEXT: s_mov_b32 s8, SCRATCH_RSRC_DWORD0
550 ; GFX9-DL-NEXT: s_mov_b32 s9, SCRATCH_RSRC_DWORD1
551 ; GFX9-DL-NEXT: s_mov_b32 s10, -1
552 ; GFX9-DL-NEXT: s_mov_b32 s11, 0xe00000
553 ; GFX9-DL-NEXT: s_add_u32 s8, s8, s3
554 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
555 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
556 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
557 ; GFX9-DL-NEXT: v_mov_b32_e32 v4, 12
558 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
559 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
560 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
561 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
562 ; GFX9-DL-NEXT: global_load_ushort v3, v0, s[2:3]
563 ; GFX9-DL-NEXT: s_addc_u32 s9, s9, 0
564 ; GFX9-DL-NEXT: s_waitcnt vmcnt(2)
565 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v9, 4, v1
566 ; GFX9-DL-NEXT: s_waitcnt vmcnt(1)
567 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v14, 4, v2
568 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v15, 12, v1
569 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v16, 12, v2
570 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v5, 28, v1
571 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v6, 20, v1
572 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v7, 12, v1
573 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v8, 8, v1
574 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v10, 28, v2
575 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v11, 20, v2
576 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v12, 12, v2
577 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v13, 8, v2
578 ; GFX9-DL-NEXT: v_lshlrev_b16_sdwa v17, v4, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWOR…
579 ; GFX9-DL-NEXT: v_lshlrev_b16_sdwa v18, v4, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWOR…
580 ; GFX9-DL-NEXT: v_lshlrev_b16_sdwa v1, v4, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD…
581 ; GFX9-DL-NEXT: v_lshlrev_b16_sdwa v2, v4, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD…
582 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v4, 12, v15
583 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v15, 12, v16
584 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v9, 12, v9
585 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v14, 12, v14
586 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v8, 12, v8
587 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v13, 12, v13
588 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v9, 12, v9
589 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v14, 12, v14
590 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
591 ; GFX9-DL-NEXT: v_mad_legacy_u16 v3, v4, v15, v3
592 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v7, 12, v7
593 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v12, 12, v12
594 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v8, 12, v8
595 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v13, 12, v13
596 ; GFX9-DL-NEXT: v_mad_legacy_u16 v3, v9, v14, v3
597 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v7, 12, v7
598 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v12, 12, v12
599 ; GFX9-DL-NEXT: v_mad_legacy_u16 v3, v8, v13, v3
600 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v16, 12, v17
601 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v17, 12, v18
602 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v6, 12, v6
603 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v11, 12, v11
604 ; GFX9-DL-NEXT: v_mad_legacy_u16 v3, v7, v12, v3
605 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v6, 12, v6
606 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v11, 12, v11
607 ; GFX9-DL-NEXT: v_mad_legacy_u16 v3, v16, v17, v3
608 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v1, 12, v1
609 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v2, 12, v2
610 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v5, 12, v5
611 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v10, 12, v10
612 ; GFX9-DL-NEXT: v_mad_legacy_u16 v3, v6, v11, v3
613 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v5, 12, v5
614 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v10, 12, v10
615 ; GFX9-DL-NEXT: v_mad_legacy_u16 v1, v1, v2, v3
616 ; GFX9-DL-NEXT: v_mad_legacy_u16 v1, v5, v10, v1
617 ; GFX9-DL-NEXT: global_store_short v0, v1, s[2:3]
618 ; GFX9-DL-NEXT: s_endpgm
620 ; GFX10-DL-XNACK-LABEL: idot8_acc16:
621 ; GFX10-DL-XNACK: ; %bb.0: ; %entry
622 ; GFX10-DL-XNACK-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
623 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b32_e32 v0, 2, v0
624 ; GFX10-DL-XNACK-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
625 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s8, SCRATCH_RSRC_DWORD0
626 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s9, SCRATCH_RSRC_DWORD1
627 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s10, -1
628 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s11, 0x31c16000
629 ; GFX10-DL-XNACK-NEXT: s_add_u32 s8, s8, s3
630 ; GFX10-DL-XNACK-NEXT: s_addc_u32 s9, s9, 0
631 ; GFX10-DL-XNACK-NEXT: s_waitcnt lgkmcnt(0)
632 ; GFX10-DL-XNACK-NEXT: s_clause 0x1
633 ; GFX10-DL-XNACK-NEXT: global_load_dword v1, v0, s[4:5]
634 ; GFX10-DL-XNACK-NEXT: global_load_dword v2, v0, s[6:7]
635 ; GFX10-DL-XNACK-NEXT: v_mov_b32_e32 v0, 0
636 ; GFX10-DL-XNACK-NEXT: global_load_ushort v3, v0, s[0:1]
637 ; GFX10-DL-XNACK-NEXT: s_waitcnt vmcnt(2)
638 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v4, 28, v1
639 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v5, 24, v1
640 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v6, 20, v1
641 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v7, 16, v1
642 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v8, 12, v1
643 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v9, 8, v1
644 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v10, 4, v1
645 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v1, 12, v1
646 ; GFX10-DL-XNACK-NEXT: s_waitcnt vmcnt(1)
647 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v16, 4, v2
648 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v17, 12, v2
649 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v11, 28, v2
650 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v12, 24, v2
651 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v13, 20, v2
652 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v14, 16, v2
653 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v15, 12, v2
654 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v2, 8, v2
655 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v1, 12, v1
656 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v10, 12, v10
657 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v16, 12, v16
658 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v17, 12, v17
659 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v9, 12, v9
660 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v2, 12, v2
661 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v10, 12, v10
662 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v16, 12, v16
663 ; GFX10-DL-XNACK-NEXT: s_waitcnt vmcnt(0)
664 ; GFX10-DL-XNACK-NEXT: v_mad_u16 v1, v1, v17, v3
665 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v3, 12, v9
666 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v2, 12, v2
667 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v8, 12, v8
668 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v9, 12, v15
669 ; GFX10-DL-XNACK-NEXT: v_mad_u16 v1, v10, v16, v1
670 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v7, 12, v7
671 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v10, 12, v14
672 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v8, 12, v8
673 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v9, 12, v9
674 ; GFX10-DL-XNACK-NEXT: v_mad_u16 v1, v3, v2, v1
675 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v2, 12, v7
676 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v3, 12, v10
677 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v6, 12, v6
678 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v7, 12, v13
679 ; GFX10-DL-XNACK-NEXT: v_mad_u16 v1, v8, v9, v1
680 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v5, 12, v5
681 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v8, 12, v12
682 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v6, 12, v6
683 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v7, 12, v7
684 ; GFX10-DL-XNACK-NEXT: v_mad_u16 v1, v2, v3, v1
685 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v2, 12, v5
686 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v3, 12, v8
687 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v4, 12, v4
688 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v5, 12, v11
689 ; GFX10-DL-XNACK-NEXT: v_mad_u16 v1, v6, v7, v1
690 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v4, 12, v4
691 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v5, 12, v5
692 ; GFX10-DL-XNACK-NEXT: v_mad_u16 v1, v2, v3, v1
693 ; GFX10-DL-XNACK-NEXT: v_mad_u16 v1, v4, v5, v1
694 ; GFX10-DL-XNACK-NEXT: global_store_short v0, v1, s[0:1]
695 ; GFX10-DL-XNACK-NEXT: s_endpgm
697 ; GFX10-DL-NOXNACK-LABEL: idot8_acc16:
698 ; GFX10-DL-NOXNACK: ; %bb.0: ; %entry
699 ; GFX10-DL-NOXNACK-NEXT: s_clause 0x1
700 ; GFX10-DL-NOXNACK-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
701 ; GFX10-DL-NOXNACK-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
702 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b32_e32 v0, 2, v0
703 ; GFX10-DL-NOXNACK-NEXT: v_mov_b32_e32 v2, 0
704 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s8, SCRATCH_RSRC_DWORD0
705 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s9, SCRATCH_RSRC_DWORD1
706 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s10, -1
707 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s11, 0x31c16000
708 ; GFX10-DL-NOXNACK-NEXT: s_add_u32 s8, s8, s3
709 ; GFX10-DL-NOXNACK-NEXT: s_addc_u32 s9, s9, 0
710 ; GFX10-DL-NOXNACK-NEXT: s_waitcnt lgkmcnt(0)
711 ; GFX10-DL-NOXNACK-NEXT: s_clause 0x1
712 ; GFX10-DL-NOXNACK-NEXT: global_load_dword v1, v0, s[4:5]
713 ; GFX10-DL-NOXNACK-NEXT: global_load_dword v0, v0, s[6:7]
714 ; GFX10-DL-NOXNACK-NEXT: global_load_ushort v3, v2, s[0:1]
715 ; GFX10-DL-NOXNACK-NEXT: s_waitcnt vmcnt(2)
716 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v4, 28, v1
717 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v5, 24, v1
718 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v6, 20, v1
719 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v7, 16, v1
720 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v8, 12, v1
721 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v9, 8, v1
722 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v10, 4, v1
723 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v1, 12, v1
724 ; GFX10-DL-NOXNACK-NEXT: s_waitcnt vmcnt(1)
725 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v16, 4, v0
726 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v17, 12, v0
727 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v11, 28, v0
728 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v12, 24, v0
729 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v13, 20, v0
730 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v14, 16, v0
731 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v15, 12, v0
732 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v0, 8, v0
733 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v1, 12, v1
734 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v10, 12, v10
735 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v16, 12, v16
736 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v17, 12, v17
737 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v9, 12, v9
738 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v0, 12, v0
739 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v10, 12, v10
740 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v16, 12, v16
741 ; GFX10-DL-NOXNACK-NEXT: s_waitcnt vmcnt(0)
742 ; GFX10-DL-NOXNACK-NEXT: v_mad_u16 v1, v1, v17, v3
743 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v3, 12, v9
744 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v0, 12, v0
745 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v8, 12, v8
746 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v9, 12, v15
747 ; GFX10-DL-NOXNACK-NEXT: v_mad_u16 v1, v10, v16, v1
748 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v7, 12, v7
749 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v10, 12, v14
750 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v8, 12, v8
751 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v9, 12, v9
752 ; GFX10-DL-NOXNACK-NEXT: v_mad_u16 v0, v3, v0, v1
753 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v1, 12, v7
754 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v3, 12, v10
755 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v6, 12, v6
756 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v7, 12, v13
757 ; GFX10-DL-NOXNACK-NEXT: v_mad_u16 v0, v8, v9, v0
758 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v5, 12, v5
759 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v8, 12, v12
760 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v6, 12, v6
761 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v7, 12, v7
762 ; GFX10-DL-NOXNACK-NEXT: v_mad_u16 v0, v1, v3, v0
763 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v1, 12, v5
764 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v3, 12, v8
765 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v4, 12, v4
766 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v5, 12, v11
767 ; GFX10-DL-NOXNACK-NEXT: v_mad_u16 v0, v6, v7, v0
768 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v4, 12, v4
769 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v5, 12, v5
770 ; GFX10-DL-NOXNACK-NEXT: v_mad_u16 v0, v1, v3, v0
771 ; GFX10-DL-NOXNACK-NEXT: v_mad_u16 v0, v4, v5, v0
772 ; GFX10-DL-NOXNACK-NEXT: global_store_short v2, v0, s[0:1]
773 ; GFX10-DL-NOXNACK-NEXT: s_endpgm
774 ; GFX10-DL-LABEL: idot8_acc16:
775 ; GFX10-DL: ; %bb.0: ; %entry
776 ; GFX10-DL-NEXT: s_load_dwordx2 s[4:5], s[0:1], 0x34
777 ; GFX10-DL-NEXT: v_mov_b32_e32 v0, 0
778 ; GFX10-DL-NEXT: s_mov_b32 s12, SCRATCH_RSRC_DWORD0
779 ; GFX10-DL-NEXT: s_mov_b32 s13, SCRATCH_RSRC_DWORD1
780 ; GFX10-DL-NEXT: s_mov_b32 s14, -1
781 ; GFX10-DL-NEXT: s_mov_b32 s15, 0x31c16000
782 ; GFX10-DL-NEXT: s_add_u32 s12, s12, s3
783 ; GFX10-DL-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24
784 ; GFX10-DL-NEXT: s_addc_u32 s13, s13, 0
785 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
786 ; GFX10-DL-NEXT: global_load_ushort v1, v0, s[4:5]
787 ; GFX10-DL-NEXT: s_load_dword s0, s[0:1], 0x0
788 ; GFX10-DL-NEXT: s_load_dword s1, s[2:3], 0x0
789 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
790 ; GFX10-DL-NEXT: s_lshr_b32 s2, s0, 12
791 ; GFX10-DL-NEXT: s_lshr_b32 s3, s1, 12
792 ; GFX10-DL-NEXT: s_bfe_i32 s6, s0, 0x40000
793 ; GFX10-DL-NEXT: s_bfe_i32 s7, s1, 0x40000
794 ; GFX10-DL-NEXT: v_lshlrev_b16_e64 v2, 12, s2
795 ; GFX10-DL-NEXT: v_lshlrev_b16_e64 v3, 12, s3
796 ; GFX10-DL-NEXT: s_bfe_i32 s8, s0, 0x40004
797 ; GFX10-DL-NEXT: s_bfe_i32 s9, s0, 0x40008
798 ; GFX10-DL-NEXT: s_bfe_i32 s10, s1, 0x40008
799 ; GFX10-DL-NEXT: s_bfe_i32 s2, s1, 0x40004
800 ; GFX10-DL-NEXT: v_mul_i32_i24_e64 v4, s9, s10
801 ; GFX10-DL-NEXT: v_ashrrev_i16_e64 v2, 12, v2
802 ; GFX10-DL-NEXT: v_ashrrev_i16_e64 v3, 12, v3
803 ; GFX10-DL-NEXT: s_bfe_i32 s3, s1, 0x40010
804 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
805 ; GFX10-DL-NEXT: v_mad_i32_i24 v1, s6, s7, v1
806 ; GFX10-DL-NEXT: v_mad_i32_i24 v1, s8, s2, v1
807 ; GFX10-DL-NEXT: s_mov_b32 s2, 0xffff
808 ; GFX10-DL-NEXT: v_and_b32_e32 v2, s2, v2
809 ; GFX10-DL-NEXT: v_and_b32_e32 v3, s2, v3
810 ; GFX10-DL-NEXT: v_add_nc_u32_sdwa v1, v1, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_…
811 ; GFX10-DL-NEXT: s_bfe_i32 s2, s0, 0x40010
812 ; GFX10-DL-NEXT: v_mad_u32_u24 v1, v2, v3, v1
813 ; GFX10-DL-NEXT: v_mad_i32_i24 v1, s2, s3, v1
814 ; GFX10-DL-NEXT: s_bfe_i32 s2, s0, 0x40014
815 ; GFX10-DL-NEXT: s_bfe_i32 s3, s1, 0x40014
816 ; GFX10-DL-NEXT: v_mad_i32_i24 v1, s2, s3, v1
817 ; GFX10-DL-NEXT: s_bfe_i32 s2, s0, 0x40018
818 ; GFX10-DL-NEXT: s_bfe_i32 s3, s1, 0x40018
819 ; GFX10-DL-NEXT: s_ashr_i32 s0, s0, 28
820 ; GFX10-DL-NEXT: s_ashr_i32 s1, s1, 28
821 ; GFX10-DL-NEXT: v_mad_i32_i24 v1, s2, s3, v1
822 ; GFX10-DL-NEXT: v_mad_i32_i24 v1, s0, s1, v1
823 ; GFX10-DL-NEXT: global_store_short v0, v1, s[4:5]
824 ; GFX10-DL-NEXT: s_endpgm
1119 ; GFX9-DL-LABEL: idot8_acc8:
1120 ; GFX9-DL: ; %bb.0: ; %entry
1121 ; GFX9-DL-NEXT: s_mov_b32 s8, SCRATCH_RSRC_DWORD0
1122 ; GFX9-DL-NEXT: s_mov_b32 s9, SCRATCH_RSRC_DWORD1
1123 ; GFX9-DL-NEXT: s_mov_b32 s10, -1
1124 ; GFX9-DL-NEXT: s_mov_b32 s11, 0xe00000
1125 ; GFX9-DL-NEXT: s_add_u32 s8, s8, s3
1126 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1127 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
1128 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
1129 ; GFX9-DL-NEXT: v_mov_b32_e32 v4, 12
1130 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
1131 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
1132 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
1133 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
1134 ; GFX9-DL-NEXT: global_load_ubyte v3, v0, s[2:3]
1135 ; GFX9-DL-NEXT: s_addc_u32 s9, s9, 0
1136 ; GFX9-DL-NEXT: s_waitcnt vmcnt(2)
1137 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v9, 4, v1
1138 ; GFX9-DL-NEXT: s_waitcnt vmcnt(1)
1139 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v14, 4, v2
1140 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v15, 12, v1
1141 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v16, 12, v2
1142 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v5, 28, v1
1143 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v6, 20, v1
1144 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v7, 12, v1
1145 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v8, 8, v1
1146 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v10, 28, v2
1147 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v11, 20, v2
1148 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v12, 12, v2
1149 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v13, 8, v2
1150 ; GFX9-DL-NEXT: v_lshlrev_b16_sdwa v17, v4, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWOR…
1151 ; GFX9-DL-NEXT: v_lshlrev_b16_sdwa v18, v4, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWOR…
1152 ; GFX9-DL-NEXT: v_lshlrev_b16_sdwa v1, v4, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD…
1153 ; GFX9-DL-NEXT: v_lshlrev_b16_sdwa v2, v4, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD…
1154 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v4, 12, v15
1155 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v15, 12, v16
1156 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v9, 12, v9
1157 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v14, 12, v14
1158 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v8, 12, v8
1159 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v13, 12, v13
1160 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v9, 12, v9
1161 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v14, 12, v14
1162 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
1163 ; GFX9-DL-NEXT: v_mad_legacy_u16 v3, v4, v15, v3
1164 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v7, 12, v7
1165 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v12, 12, v12
1166 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v8, 12, v8
1167 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v13, 12, v13
1168 ; GFX9-DL-NEXT: v_mad_legacy_u16 v3, v9, v14, v3
1169 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v7, 12, v7
1170 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v12, 12, v12
1171 ; GFX9-DL-NEXT: v_mad_legacy_u16 v3, v8, v13, v3
1172 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v16, 12, v17
1173 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v17, 12, v18
1174 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v6, 12, v6
1175 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v11, 12, v11
1176 ; GFX9-DL-NEXT: v_mad_legacy_u16 v3, v7, v12, v3
1177 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v6, 12, v6
1178 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v11, 12, v11
1179 ; GFX9-DL-NEXT: v_mad_legacy_u16 v3, v16, v17, v3
1180 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v1, 12, v1
1181 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v2, 12, v2
1182 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v5, 12, v5
1183 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v10, 12, v10
1184 ; GFX9-DL-NEXT: v_mad_legacy_u16 v3, v6, v11, v3
1185 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v5, 12, v5
1186 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v10, 12, v10
1187 ; GFX9-DL-NEXT: v_mad_legacy_u16 v1, v1, v2, v3
1188 ; GFX9-DL-NEXT: v_mad_legacy_u16 v1, v5, v10, v1
1189 ; GFX9-DL-NEXT: global_store_byte v0, v1, s[2:3]
1190 ; GFX9-DL-NEXT: s_endpgm
1192 ; GFX10-DL-XNACK-LABEL: idot8_acc8:
1193 ; GFX10-DL-XNACK: ; %bb.0: ; %entry
1194 ; GFX10-DL-XNACK-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1195 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b32_e32 v0, 2, v0
1196 ; GFX10-DL-XNACK-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
1197 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s8, SCRATCH_RSRC_DWORD0
1198 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s9, SCRATCH_RSRC_DWORD1
1199 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s10, -1
1200 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s11, 0x31c16000
1201 ; GFX10-DL-XNACK-NEXT: s_add_u32 s8, s8, s3
1202 ; GFX10-DL-XNACK-NEXT: s_addc_u32 s9, s9, 0
1203 ; GFX10-DL-XNACK-NEXT: s_waitcnt lgkmcnt(0)
1204 ; GFX10-DL-XNACK-NEXT: s_clause 0x1
1205 ; GFX10-DL-XNACK-NEXT: global_load_dword v1, v0, s[4:5]
1206 ; GFX10-DL-XNACK-NEXT: global_load_dword v2, v0, s[6:7]
1207 ; GFX10-DL-XNACK-NEXT: v_mov_b32_e32 v0, 0
1208 ; GFX10-DL-XNACK-NEXT: global_load_ubyte v3, v0, s[0:1]
1209 ; GFX10-DL-XNACK-NEXT: s_waitcnt vmcnt(2)
1210 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v4, 28, v1
1211 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v5, 24, v1
1212 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v6, 20, v1
1213 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v7, 16, v1
1214 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v8, 12, v1
1215 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v9, 8, v1
1216 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v10, 4, v1
1217 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v1, 12, v1
1218 ; GFX10-DL-XNACK-NEXT: s_waitcnt vmcnt(1)
1219 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v16, 4, v2
1220 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v17, 12, v2
1221 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v11, 28, v2
1222 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v12, 24, v2
1223 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v13, 20, v2
1224 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v14, 16, v2
1225 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v15, 12, v2
1226 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v2, 8, v2
1227 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v1, 12, v1
1228 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v10, 12, v10
1229 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v16, 12, v16
1230 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v17, 12, v17
1231 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v9, 12, v9
1232 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v2, 12, v2
1233 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v10, 12, v10
1234 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v16, 12, v16
1235 ; GFX10-DL-XNACK-NEXT: s_waitcnt vmcnt(0)
1236 ; GFX10-DL-XNACK-NEXT: v_mad_u16 v1, v1, v17, v3
1237 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v3, 12, v9
1238 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v2, 12, v2
1239 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v8, 12, v8
1240 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v9, 12, v15
1241 ; GFX10-DL-XNACK-NEXT: v_mad_u16 v1, v10, v16, v1
1242 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v7, 12, v7
1243 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v10, 12, v14
1244 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v8, 12, v8
1245 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v9, 12, v9
1246 ; GFX10-DL-XNACK-NEXT: v_mad_u16 v1, v3, v2, v1
1247 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v2, 12, v7
1248 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v3, 12, v10
1249 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v6, 12, v6
1250 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v7, 12, v13
1251 ; GFX10-DL-XNACK-NEXT: v_mad_u16 v1, v8, v9, v1
1252 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v5, 12, v5
1253 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v8, 12, v12
1254 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v6, 12, v6
1255 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v7, 12, v7
1256 ; GFX10-DL-XNACK-NEXT: v_mad_u16 v1, v2, v3, v1
1257 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v2, 12, v5
1258 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v3, 12, v8
1259 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v4, 12, v4
1260 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v5, 12, v11
1261 ; GFX10-DL-XNACK-NEXT: v_mad_u16 v1, v6, v7, v1
1262 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v4, 12, v4
1263 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v5, 12, v5
1264 ; GFX10-DL-XNACK-NEXT: v_mad_u16 v1, v2, v3, v1
1265 ; GFX10-DL-XNACK-NEXT: v_mad_u16 v1, v4, v5, v1
1266 ; GFX10-DL-XNACK-NEXT: global_store_byte v0, v1, s[0:1]
1267 ; GFX10-DL-XNACK-NEXT: s_endpgm
1269 ; GFX10-DL-NOXNACK-LABEL: idot8_acc8:
1270 ; GFX10-DL-NOXNACK: ; %bb.0: ; %entry
1271 ; GFX10-DL-NOXNACK-NEXT: s_clause 0x1
1272 ; GFX10-DL-NOXNACK-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1273 ; GFX10-DL-NOXNACK-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
1274 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b32_e32 v0, 2, v0
1275 ; GFX10-DL-NOXNACK-NEXT: v_mov_b32_e32 v2, 0
1276 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s8, SCRATCH_RSRC_DWORD0
1277 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s9, SCRATCH_RSRC_DWORD1
1278 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s10, -1
1279 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s11, 0x31c16000
1280 ; GFX10-DL-NOXNACK-NEXT: s_add_u32 s8, s8, s3
1281 ; GFX10-DL-NOXNACK-NEXT: s_addc_u32 s9, s9, 0
1282 ; GFX10-DL-NOXNACK-NEXT: s_waitcnt lgkmcnt(0)
1283 ; GFX10-DL-NOXNACK-NEXT: s_clause 0x1
1284 ; GFX10-DL-NOXNACK-NEXT: global_load_dword v1, v0, s[4:5]
1285 ; GFX10-DL-NOXNACK-NEXT: global_load_dword v0, v0, s[6:7]
1286 ; GFX10-DL-NOXNACK-NEXT: global_load_ubyte v3, v2, s[0:1]
1287 ; GFX10-DL-NOXNACK-NEXT: s_waitcnt vmcnt(2)
1288 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v4, 28, v1
1289 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v5, 24, v1
1290 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v6, 20, v1
1291 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v7, 16, v1
1292 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v8, 12, v1
1293 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v9, 8, v1
1294 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v10, 4, v1
1295 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v1, 12, v1
1296 ; GFX10-DL-NOXNACK-NEXT: s_waitcnt vmcnt(1)
1297 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v16, 4, v0
1298 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v17, 12, v0
1299 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v11, 28, v0
1300 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v12, 24, v0
1301 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v13, 20, v0
1302 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v14, 16, v0
1303 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v15, 12, v0
1304 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v0, 8, v0
1305 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v1, 12, v1
1306 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v10, 12, v10
1307 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v16, 12, v16
1308 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v17, 12, v17
1309 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v9, 12, v9
1310 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v0, 12, v0
1311 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v10, 12, v10
1312 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v16, 12, v16
1313 ; GFX10-DL-NOXNACK-NEXT: s_waitcnt vmcnt(0)
1314 ; GFX10-DL-NOXNACK-NEXT: v_mad_u16 v1, v1, v17, v3
1315 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v3, 12, v9
1316 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v0, 12, v0
1317 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v8, 12, v8
1318 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v9, 12, v15
1319 ; GFX10-DL-NOXNACK-NEXT: v_mad_u16 v1, v10, v16, v1
1320 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v7, 12, v7
1321 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v10, 12, v14
1322 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v8, 12, v8
1323 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v9, 12, v9
1324 ; GFX10-DL-NOXNACK-NEXT: v_mad_u16 v0, v3, v0, v1
1325 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v1, 12, v7
1326 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v3, 12, v10
1327 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v6, 12, v6
1328 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v7, 12, v13
1329 ; GFX10-DL-NOXNACK-NEXT: v_mad_u16 v0, v8, v9, v0
1330 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v5, 12, v5
1331 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v8, 12, v12
1332 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v6, 12, v6
1333 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v7, 12, v7
1334 ; GFX10-DL-NOXNACK-NEXT: v_mad_u16 v0, v1, v3, v0
1335 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v1, 12, v5
1336 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v3, 12, v8
1337 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v4, 12, v4
1338 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v5, 12, v11
1339 ; GFX10-DL-NOXNACK-NEXT: v_mad_u16 v0, v6, v7, v0
1340 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v4, 12, v4
1341 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v5, 12, v5
1342 ; GFX10-DL-NOXNACK-NEXT: v_mad_u16 v0, v1, v3, v0
1343 ; GFX10-DL-NOXNACK-NEXT: v_mad_u16 v0, v4, v5, v0
1344 ; GFX10-DL-NOXNACK-NEXT: global_store_byte v2, v0, s[0:1]
1345 ; GFX10-DL-NOXNACK-NEXT: s_endpgm
1346 ; GFX10-DL-LABEL: idot8_acc8:
1347 ; GFX10-DL: ; %bb.0: ; %entry
1348 ; GFX10-DL-NEXT: s_load_dwordx2 s[4:5], s[0:1], 0x34
1349 ; GFX10-DL-NEXT: v_mov_b32_e32 v0, 0
1350 ; GFX10-DL-NEXT: s_mov_b32 s12, SCRATCH_RSRC_DWORD0
1351 ; GFX10-DL-NEXT: s_mov_b32 s13, SCRATCH_RSRC_DWORD1
1352 ; GFX10-DL-NEXT: s_mov_b32 s14, -1
1353 ; GFX10-DL-NEXT: s_mov_b32 s15, 0x31c16000
1354 ; GFX10-DL-NEXT: s_add_u32 s12, s12, s3
1355 ; GFX10-DL-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24
1356 ; GFX10-DL-NEXT: s_addc_u32 s13, s13, 0
1357 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
1358 ; GFX10-DL-NEXT: global_load_ubyte v1, v0, s[4:5]
1359 ; GFX10-DL-NEXT: s_load_dword s0, s[0:1], 0x0
1360 ; GFX10-DL-NEXT: s_load_dword s1, s[2:3], 0x0
1361 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
1362 ; GFX10-DL-NEXT: s_lshr_b32 s2, s0, 12
1363 ; GFX10-DL-NEXT: s_lshr_b32 s3, s1, 12
1364 ; GFX10-DL-NEXT: s_bfe_i32 s6, s0, 0x40000
1365 ; GFX10-DL-NEXT: s_bfe_i32 s7, s1, 0x40000
1366 ; GFX10-DL-NEXT: v_lshlrev_b16_e64 v2, 12, s2
1367 ; GFX10-DL-NEXT: v_lshlrev_b16_e64 v3, 12, s3
1368 ; GFX10-DL-NEXT: s_bfe_i32 s8, s0, 0x40004
1369 ; GFX10-DL-NEXT: s_bfe_i32 s9, s0, 0x40008
1370 ; GFX10-DL-NEXT: s_bfe_i32 s10, s1, 0x40008
1371 ; GFX10-DL-NEXT: s_bfe_i32 s2, s1, 0x40004
1372 ; GFX10-DL-NEXT: v_mul_i32_i24_e64 v4, s9, s10
1373 ; GFX10-DL-NEXT: v_ashrrev_i16_e64 v2, 12, v2
1374 ; GFX10-DL-NEXT: v_ashrrev_i16_e64 v3, 12, v3
1375 ; GFX10-DL-NEXT: s_bfe_i32 s3, s1, 0x40010
1376 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
1377 ; GFX10-DL-NEXT: v_mad_i32_i24 v1, s6, s7, v1
1378 ; GFX10-DL-NEXT: v_mad_i32_i24 v1, s8, s2, v1
1379 ; GFX10-DL-NEXT: s_movk_i32 s2, 0xff
1380 ; GFX10-DL-NEXT: v_and_b32_e32 v2, s2, v2
1381 ; GFX10-DL-NEXT: v_and_b32_e32 v3, s2, v3
1382 ; GFX10-DL-NEXT: v_add_nc_u32_sdwa v1, v1, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_…
1383 ; GFX10-DL-NEXT: s_bfe_i32 s2, s0, 0x40010
1384 ; GFX10-DL-NEXT: v_mad_u32_u24 v1, v2, v3, v1
1385 ; GFX10-DL-NEXT: v_mad_i32_i24 v1, s2, s3, v1
1386 ; GFX10-DL-NEXT: s_bfe_i32 s2, s0, 0x40014
1387 ; GFX10-DL-NEXT: s_bfe_i32 s3, s1, 0x40014
1388 ; GFX10-DL-NEXT: v_mad_i32_i24 v1, s2, s3, v1
1389 ; GFX10-DL-NEXT: s_bfe_i32 s2, s0, 0x40018
1390 ; GFX10-DL-NEXT: s_bfe_i32 s3, s1, 0x40018
1391 ; GFX10-DL-NEXT: s_ashr_i32 s0, s0, 28
1392 ; GFX10-DL-NEXT: s_ashr_i32 s1, s1, 28
1393 ; GFX10-DL-NEXT: v_mad_i32_i24 v1, s2, s3, v1
1394 ; GFX10-DL-NEXT: v_mad_i32_i24 v1, s0, s1, v1
1395 ; GFX10-DL-NEXT: global_store_byte v0, v1, s[4:5]
1396 ; GFX10-DL-NEXT: s_endpgm
1631 ; GFX9-DL-LABEL: idot8_multiuses_mul1:
1632 ; GFX9-DL: ; %bb.0: ; %entry
1633 ; GFX9-DL-NEXT: s_mov_b32 s8, SCRATCH_RSRC_DWORD0
1634 ; GFX9-DL-NEXT: s_mov_b32 s9, SCRATCH_RSRC_DWORD1
1635 ; GFX9-DL-NEXT: s_mov_b32 s10, -1
1636 ; GFX9-DL-NEXT: s_mov_b32 s11, 0xe00000
1637 ; GFX9-DL-NEXT: s_add_u32 s8, s8, s3
1638 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1639 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
1640 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
1641 ; GFX9-DL-NEXT: s_addc_u32 s9, s9, 0
1642 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
1643 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
1644 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
1645 ; GFX9-DL-NEXT: s_load_dword s0, s[2:3], 0x0
1646 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
1647 ; GFX9-DL-NEXT: s_waitcnt vmcnt(1)
1648 ; GFX9-DL-NEXT: v_bfe_i32 v3, v1, 0, 4
1649 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
1650 ; GFX9-DL-NEXT: v_bfe_i32 v4, v2, 0, 4
1651 ; GFX9-DL-NEXT: v_bfe_i32 v5, v1, 4, 4
1652 ; GFX9-DL-NEXT: v_bfe_i32 v6, v2, 4, 4
1653 ; GFX9-DL-NEXT: v_bfe_i32 v7, v1, 8, 4
1654 ; GFX9-DL-NEXT: v_bfe_i32 v8, v2, 8, 4
1655 ; GFX9-DL-NEXT: v_bfe_i32 v9, v1, 12, 4
1656 ; GFX9-DL-NEXT: v_bfe_i32 v10, v2, 12, 4
1657 ; GFX9-DL-NEXT: v_bfe_i32 v11, v1, 16, 4
1658 ; GFX9-DL-NEXT: v_bfe_i32 v12, v2, 16, 4
1659 ; GFX9-DL-NEXT: v_bfe_i32 v13, v1, 20, 4
1660 ; GFX9-DL-NEXT: v_bfe_i32 v14, v2, 20, 4
1661 ; GFX9-DL-NEXT: v_bfe_i32 v15, v1, 24, 4
1662 ; GFX9-DL-NEXT: v_bfe_i32 v16, v2, 24, 4
1663 ; GFX9-DL-NEXT: v_ashrrev_i32_e32 v1, 28, v1
1664 ; GFX9-DL-NEXT: v_ashrrev_i32_e32 v2, 28, v2
1665 ; GFX9-DL-NEXT: v_mul_i32_i24_e32 v1, v1, v2
1666 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
1667 ; GFX9-DL-NEXT: v_mad_i32_i24 v2, v3, v4, s0
1668 ; GFX9-DL-NEXT: v_mul_i32_i24_e32 v5, v5, v6
1669 ; GFX9-DL-NEXT: v_mul_i32_i24_e32 v6, v7, v8
1670 ; GFX9-DL-NEXT: v_mad_i32_i24 v3, v3, v4, v2
1671 ; GFX9-DL-NEXT: v_mul_i32_i24_e32 v7, v9, v10
1672 ; GFX9-DL-NEXT: v_mul_i32_i24_e32 v8, v11, v12
1673 ; GFX9-DL-NEXT: v_add3_u32 v3, v3, v5, v6
1674 ; GFX9-DL-NEXT: v_mul_i32_i24_e32 v9, v13, v14
1675 ; GFX9-DL-NEXT: v_mul_i32_i24_e32 v10, v15, v16
1676 ; GFX9-DL-NEXT: v_add3_u32 v3, v3, v7, v8
1677 ; GFX9-DL-NEXT: v_add3_u32 v3, v3, v9, v10
1678 ; GFX9-DL-NEXT: v_add3_u32 v1, v3, v1, v2
1679 ; GFX9-DL-NEXT: global_store_dword v0, v1, s[2:3]
1680 ; GFX9-DL-NEXT: s_endpgm
1682 ; GFX10-DL-XNACK-LABEL: idot8_multiuses_mul1:
1683 ; GFX10-DL-XNACK: ; %bb.0: ; %entry
1684 ; GFX10-DL-XNACK-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1685 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b32_e32 v0, 2, v0
1686 ; GFX10-DL-XNACK-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
1687 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s8, SCRATCH_RSRC_DWORD0
1688 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s9, SCRATCH_RSRC_DWORD1
1689 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s10, -1
1690 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s11, 0x31c16000
1691 ; GFX10-DL-XNACK-NEXT: s_add_u32 s8, s8, s3
1692 ; GFX10-DL-XNACK-NEXT: s_addc_u32 s9, s9, 0
1693 ; GFX10-DL-XNACK-NEXT: s_waitcnt lgkmcnt(0)
1694 ; GFX10-DL-XNACK-NEXT: s_clause 0x1
1695 ; GFX10-DL-XNACK-NEXT: global_load_dword v1, v0, s[4:5]
1696 ; GFX10-DL-XNACK-NEXT: global_load_dword v2, v0, s[6:7]
1697 ; GFX10-DL-XNACK-NEXT: s_load_dword s2, s[0:1], 0x0
1698 ; GFX10-DL-XNACK-NEXT: s_waitcnt vmcnt(1)
1699 ; GFX10-DL-XNACK-NEXT: v_bfe_i32 v0, v1, 0, 4
1700 ; GFX10-DL-XNACK-NEXT: v_bfe_i32 v3, v1, 4, 4
1701 ; GFX10-DL-XNACK-NEXT: s_waitcnt vmcnt(0)
1702 ; GFX10-DL-XNACK-NEXT: v_bfe_i32 v4, v2, 4, 4
1703 ; GFX10-DL-XNACK-NEXT: v_bfe_i32 v5, v1, 8, 4
1704 ; GFX10-DL-XNACK-NEXT: v_bfe_i32 v6, v2, 8, 4
1705 ; GFX10-DL-XNACK-NEXT: v_bfe_i32 v7, v2, 0, 4
1706 ; GFX10-DL-XNACK-NEXT: v_bfe_i32 v8, v1, 12, 4
1707 ; GFX10-DL-XNACK-NEXT: v_mul_i32_i24_e32 v3, v3, v4
1708 ; GFX10-DL-XNACK-NEXT: v_bfe_i32 v9, v2, 12, 4
1709 ; GFX10-DL-XNACK-NEXT: v_mul_i32_i24_e32 v4, v5, v6
1710 ; GFX10-DL-XNACK-NEXT: s_waitcnt lgkmcnt(0)
1711 ; GFX10-DL-XNACK-NEXT: v_mad_i32_i24 v5, v0, v7, s2
1712 ; GFX10-DL-XNACK-NEXT: v_bfe_i32 v6, v1, 16, 4
1713 ; GFX10-DL-XNACK-NEXT: v_bfe_i32 v10, v2, 16, 4
1714 ; GFX10-DL-XNACK-NEXT: v_bfe_i32 v11, v1, 20, 4
1715 ; GFX10-DL-XNACK-NEXT: v_bfe_i32 v12, v2, 20, 4
1716 ; GFX10-DL-XNACK-NEXT: v_mad_i32_i24 v0, v0, v7, v5
1717 ; GFX10-DL-XNACK-NEXT: v_bfe_i32 v7, v1, 24, 4
1718 ; GFX10-DL-XNACK-NEXT: v_bfe_i32 v13, v2, 24, 4
1719 ; GFX10-DL-XNACK-NEXT: v_mul_i32_i24_e32 v8, v8, v9
1720 ; GFX10-DL-XNACK-NEXT: v_mul_i32_i24_e32 v6, v6, v10
1721 ; GFX10-DL-XNACK-NEXT: v_add3_u32 v0, v0, v3, v4
1722 ; GFX10-DL-XNACK-NEXT: v_mul_i32_i24_e32 v3, v11, v12
1723 ; GFX10-DL-XNACK-NEXT: v_mul_i32_i24_e32 v4, v7, v13
1724 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i32_e32 v1, 28, v1
1725 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i32_e32 v2, 28, v2
1726 ; GFX10-DL-XNACK-NEXT: v_add3_u32 v0, v0, v8, v6
1727 ; GFX10-DL-XNACK-NEXT: v_mul_i32_i24_e32 v1, v1, v2
1728 ; GFX10-DL-XNACK-NEXT: v_add3_u32 v0, v0, v3, v4
1729 ; GFX10-DL-XNACK-NEXT: v_mov_b32_e32 v2, 0
1730 ; GFX10-DL-XNACK-NEXT: v_add3_u32 v0, v0, v1, v5
1731 ; GFX10-DL-XNACK-NEXT: global_store_dword v2, v0, s[0:1]
1732 ; GFX10-DL-XNACK-NEXT: s_endpgm
1734 ; GFX10-DL-NOXNACK-LABEL: idot8_multiuses_mul1:
1735 ; GFX10-DL-NOXNACK: ; %bb.0: ; %entry
1736 ; GFX10-DL-NOXNACK-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1737 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b32_e32 v0, 2, v0
1738 ; GFX10-DL-NOXNACK-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
1739 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s8, SCRATCH_RSRC_DWORD0
1740 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s9, SCRATCH_RSRC_DWORD1
1741 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s10, -1
1742 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s11, 0x31c16000
1743 ; GFX10-DL-NOXNACK-NEXT: s_add_u32 s8, s8, s3
1744 ; GFX10-DL-NOXNACK-NEXT: s_addc_u32 s9, s9, 0
1745 ; GFX10-DL-NOXNACK-NEXT: s_waitcnt lgkmcnt(0)
1746 ; GFX10-DL-NOXNACK-NEXT: s_clause 0x1
1747 ; GFX10-DL-NOXNACK-NEXT: global_load_dword v1, v0, s[4:5]
1748 ; GFX10-DL-NOXNACK-NEXT: global_load_dword v0, v0, s[6:7]
1749 ; GFX10-DL-NOXNACK-NEXT: s_load_dword s2, s[0:1], 0x0
1750 ; GFX10-DL-NOXNACK-NEXT: s_waitcnt vmcnt(1)
1751 ; GFX10-DL-NOXNACK-NEXT: v_bfe_i32 v2, v1, 0, 4
1752 ; GFX10-DL-NOXNACK-NEXT: v_bfe_i32 v3, v1, 4, 4
1753 ; GFX10-DL-NOXNACK-NEXT: s_waitcnt vmcnt(0)
1754 ; GFX10-DL-NOXNACK-NEXT: v_bfe_i32 v4, v0, 4, 4
1755 ; GFX10-DL-NOXNACK-NEXT: v_bfe_i32 v5, v1, 8, 4
1756 ; GFX10-DL-NOXNACK-NEXT: v_bfe_i32 v6, v0, 8, 4
1757 ; GFX10-DL-NOXNACK-NEXT: v_bfe_i32 v7, v0, 0, 4
1758 ; GFX10-DL-NOXNACK-NEXT: v_bfe_i32 v8, v1, 12, 4
1759 ; GFX10-DL-NOXNACK-NEXT: v_mul_i32_i24_e32 v3, v3, v4
1760 ; GFX10-DL-NOXNACK-NEXT: v_bfe_i32 v9, v0, 12, 4
1761 ; GFX10-DL-NOXNACK-NEXT: v_mul_i32_i24_e32 v4, v5, v6
1762 ; GFX10-DL-NOXNACK-NEXT: s_waitcnt lgkmcnt(0)
1763 ; GFX10-DL-NOXNACK-NEXT: v_mad_i32_i24 v5, v2, v7, s2
1764 ; GFX10-DL-NOXNACK-NEXT: v_bfe_i32 v6, v1, 16, 4
1765 ; GFX10-DL-NOXNACK-NEXT: v_bfe_i32 v10, v0, 16, 4
1766 ; GFX10-DL-NOXNACK-NEXT: v_bfe_i32 v11, v1, 20, 4
1767 ; GFX10-DL-NOXNACK-NEXT: v_bfe_i32 v12, v0, 20, 4
1768 ; GFX10-DL-NOXNACK-NEXT: v_mad_i32_i24 v2, v2, v7, v5
1769 ; GFX10-DL-NOXNACK-NEXT: v_bfe_i32 v7, v1, 24, 4
1770 ; GFX10-DL-NOXNACK-NEXT: v_bfe_i32 v13, v0, 24, 4
1771 ; GFX10-DL-NOXNACK-NEXT: v_mul_i32_i24_e32 v8, v8, v9
1772 ; GFX10-DL-NOXNACK-NEXT: v_mul_i32_i24_e32 v6, v6, v10
1773 ; GFX10-DL-NOXNACK-NEXT: v_add3_u32 v2, v2, v3, v4
1774 ; GFX10-DL-NOXNACK-NEXT: v_mul_i32_i24_e32 v3, v11, v12
1775 ; GFX10-DL-NOXNACK-NEXT: v_mul_i32_i24_e32 v4, v7, v13
1776 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i32_e32 v1, 28, v1
1777 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i32_e32 v0, 28, v0
1778 ; GFX10-DL-NOXNACK-NEXT: v_add3_u32 v2, v2, v8, v6
1779 ; GFX10-DL-NOXNACK-NEXT: v_mul_i32_i24_e32 v0, v1, v0
1780 ; GFX10-DL-NOXNACK-NEXT: v_add3_u32 v1, v2, v3, v4
1781 ; GFX10-DL-NOXNACK-NEXT: v_mov_b32_e32 v2, 0
1782 ; GFX10-DL-NOXNACK-NEXT: v_add3_u32 v0, v1, v0, v5
1783 ; GFX10-DL-NOXNACK-NEXT: global_store_dword v2, v0, s[0:1]
1784 ; GFX10-DL-NOXNACK-NEXT: s_endpgm
1785 ; GFX10-DL-LABEL: idot8_multiuses_mul1:
1786 ; GFX10-DL: ; %bb.0: ; %entry
1787 ; GFX10-DL-NEXT: s_mov_b32 s8, SCRATCH_RSRC_DWORD0
1788 ; GFX10-DL-NEXT: s_mov_b32 s9, SCRATCH_RSRC_DWORD1
1789 ; GFX10-DL-NEXT: s_mov_b32 s10, -1
1790 ; GFX10-DL-NEXT: s_mov_b32 s11, 0x31c16000
1791 ; GFX10-DL-NEXT: s_add_u32 s8, s8, s3
1792 ; GFX10-DL-NEXT: s_clause 0x1
1793 ; GFX10-DL-NEXT: s_load_dwordx2 s[4:5], s[0:1], 0x34
1794 ; GFX10-DL-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24
1795 ; GFX10-DL-NEXT: s_addc_u32 s9, s9, 0
1796 ; GFX10-DL-NEXT: v_mov_b32_e32 v2, 0
1797 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
1798 ; GFX10-DL-NEXT: s_load_dword s6, s[4:5], 0x0
1799 ; GFX10-DL-NEXT: s_load_dword s0, s[0:1], 0x0
1800 ; GFX10-DL-NEXT: s_load_dword s1, s[2:3], 0x0
1801 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
1802 ; GFX10-DL-NEXT: v_mov_b32_e32 v0, s6
1803 ; GFX10-DL-NEXT: s_bfe_i32 s2, s0, 0x40000
1804 ; GFX10-DL-NEXT: s_bfe_i32 s3, s1, 0x40000
1805 ; GFX10-DL-NEXT: v_mad_i32_i24 v0, s2, s3, v0
1806 ; GFX10-DL-NEXT: v_mad_i32_i24 v1, s2, s3, v0
1807 ; GFX10-DL-NEXT: s_bfe_i32 s2, s0, 0x40004
1808 ; GFX10-DL-NEXT: s_bfe_i32 s3, s1, 0x40004
1809 ; GFX10-DL-NEXT: v_mad_i32_i24 v1, s2, s3, v1
1810 ; GFX10-DL-NEXT: s_bfe_i32 s2, s0, 0x40008
1811 ; GFX10-DL-NEXT: s_bfe_i32 s3, s1, 0x40008
1812 ; GFX10-DL-NEXT: v_mad_i32_i24 v1, s2, s3, v1
1813 ; GFX10-DL-NEXT: s_bfe_i32 s2, s0, 0x4000c
1814 ; GFX10-DL-NEXT: s_bfe_i32 s3, s1, 0x4000c
1815 ; GFX10-DL-NEXT: v_mad_i32_i24 v1, s2, s3, v1
1816 ; GFX10-DL-NEXT: s_bfe_i32 s2, s0, 0x40010
1817 ; GFX10-DL-NEXT: s_bfe_i32 s3, s1, 0x40010
1818 ; GFX10-DL-NEXT: v_mad_i32_i24 v1, s2, s3, v1
1819 ; GFX10-DL-NEXT: s_bfe_i32 s2, s0, 0x40014
1820 ; GFX10-DL-NEXT: s_bfe_i32 s3, s1, 0x40014
1821 ; GFX10-DL-NEXT: v_mad_i32_i24 v1, s2, s3, v1
1822 ; GFX10-DL-NEXT: s_bfe_i32 s2, s0, 0x40018
1823 ; GFX10-DL-NEXT: s_bfe_i32 s3, s1, 0x40018
1824 ; GFX10-DL-NEXT: s_ashr_i32 s0, s0, 28
1825 ; GFX10-DL-NEXT: s_ashr_i32 s1, s1, 28
1826 ; GFX10-DL-NEXT: v_mad_i32_i24 v1, s2, s3, v1
1827 ; GFX10-DL-NEXT: v_mad_i32_i24 v1, s0, s1, v1
1828 ; GFX10-DL-NEXT: v_add_nc_u32_e32 v0, v0, v1
1829 ; GFX10-DL-NEXT: global_store_dword v2, v0, s[4:5]
1830 ; GFX10-DL-NEXT: s_endpgm
2061 ; GFX9-DL-LABEL: idot8_acc32_vecMul:
2062 ; GFX9-DL: ; %bb.0: ; %entry
2063 ; GFX9-DL-NEXT: s_mov_b32 s8, SCRATCH_RSRC_DWORD0
2064 ; GFX9-DL-NEXT: s_mov_b32 s9, SCRATCH_RSRC_DWORD1
2065 ; GFX9-DL-NEXT: s_mov_b32 s10, -1
2066 ; GFX9-DL-NEXT: s_mov_b32 s11, 0xe00000
2067 ; GFX9-DL-NEXT: s_add_u32 s8, s8, s3
2068 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
2069 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
2070 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
2071 ; GFX9-DL-NEXT: s_addc_u32 s9, s9, 0
2072 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
2073 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
2074 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
2075 ; GFX9-DL-NEXT: s_load_dword s0, s[2:3], 0x0
2076 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
2077 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2078 ; GFX9-DL-NEXT: v_dot8_i32_i4 v1, v1, v2, s0
2079 ; GFX9-DL-NEXT: global_store_dword v0, v1, s[2:3]
2080 ; GFX9-DL-NEXT: s_endpgm
2082 ; GFX10-DL-XNACK-LABEL: idot8_acc32_vecMul:
2083 ; GFX10-DL-XNACK: ; %bb.0: ; %entry
2084 ; GFX10-DL-XNACK-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
2085 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b32_e32 v0, 2, v0
2086 ; GFX10-DL-XNACK-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
2087 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s8, SCRATCH_RSRC_DWORD0
2088 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s9, SCRATCH_RSRC_DWORD1
2089 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s10, -1
2090 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s11, 0x31c16000
2091 ; GFX10-DL-XNACK-NEXT: s_add_u32 s8, s8, s3
2092 ; GFX10-DL-XNACK-NEXT: s_addc_u32 s9, s9, 0
2093 ; GFX10-DL-XNACK-NEXT: s_waitcnt lgkmcnt(0)
2094 ; GFX10-DL-XNACK-NEXT: s_clause 0x1
2095 ; GFX10-DL-XNACK-NEXT: global_load_dword v1, v0, s[4:5]
2096 ; GFX10-DL-XNACK-NEXT: global_load_dword v2, v0, s[6:7]
2097 ; GFX10-DL-XNACK-NEXT: v_mov_b32_e32 v0, 0
2098 ; GFX10-DL-XNACK-NEXT: s_load_dword s2, s[0:1], 0x0
2099 ; GFX10-DL-XNACK-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2100 ; GFX10-DL-XNACK-NEXT: v_dot8_i32_i4 v1, v1, v2, s2
2101 ; GFX10-DL-XNACK-NEXT: global_store_dword v0, v1, s[0:1]
2102 ; GFX10-DL-XNACK-NEXT: s_endpgm
2104 ; GFX10-DL-NOXNACK-LABEL: idot8_acc32_vecMul:
2105 ; GFX10-DL-NOXNACK: ; %bb.0: ; %entry
2106 ; GFX10-DL-NOXNACK-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
2107 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b32_e32 v0, 2, v0
2108 ; GFX10-DL-NOXNACK-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
2109 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s8, SCRATCH_RSRC_DWORD0
2110 ; GFX10-DL-NOXNACK-NEXT: v_mov_b32_e32 v2, 0
2111 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s9, SCRATCH_RSRC_DWORD1
2112 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s10, -1
2113 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s11, 0x31c16000
2114 ; GFX10-DL-NOXNACK-NEXT: s_add_u32 s8, s8, s3
2115 ; GFX10-DL-NOXNACK-NEXT: s_addc_u32 s9, s9, 0
2116 ; GFX10-DL-NOXNACK-NEXT: s_waitcnt lgkmcnt(0)
2117 ; GFX10-DL-NOXNACK-NEXT: s_clause 0x1
2118 ; GFX10-DL-NOXNACK-NEXT: global_load_dword v1, v0, s[4:5]
2119 ; GFX10-DL-NOXNACK-NEXT: global_load_dword v0, v0, s[6:7]
2120 ; GFX10-DL-NOXNACK-NEXT: s_load_dword s2, s[0:1], 0x0
2121 ; GFX10-DL-NOXNACK-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2122 ; GFX10-DL-NOXNACK-NEXT: v_dot8_i32_i4 v0, v1, v0, s2
2123 ; GFX10-DL-NOXNACK-NEXT: global_store_dword v2, v0, s[0:1]
2124 ; GFX10-DL-NOXNACK-NEXT: s_endpgm
2125 ; GFX10-DL-LABEL: idot8_acc32_vecMul:
2126 ; GFX10-DL: ; %bb.0: ; %entry
2127 ; GFX10-DL-NEXT: s_mov_b32 s8, SCRATCH_RSRC_DWORD0
2128 ; GFX10-DL-NEXT: s_mov_b32 s9, SCRATCH_RSRC_DWORD1
2129 ; GFX10-DL-NEXT: s_mov_b32 s10, -1
2130 ; GFX10-DL-NEXT: s_mov_b32 s11, 0x31c16000
2131 ; GFX10-DL-NEXT: s_add_u32 s8, s8, s3
2132 ; GFX10-DL-NEXT: s_clause 0x1
2133 ; GFX10-DL-NEXT: s_load_dwordx2 s[4:5], s[0:1], 0x34
2134 ; GFX10-DL-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24
2135 ; GFX10-DL-NEXT: v_mov_b32_e32 v1, 0
2136 ; GFX10-DL-NEXT: s_addc_u32 s9, s9, 0
2137 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
2138 ; GFX10-DL-NEXT: s_load_dword s6, s[4:5], 0x0
2139 ; GFX10-DL-NEXT: s_load_dword s0, s[0:1], 0x0
2140 ; GFX10-DL-NEXT: s_load_dword s1, s[2:3], 0x0
2141 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
2142 ; GFX10-DL-NEXT: v_mov_b32_e32 v0, s6
2143 ; GFX10-DL-NEXT: v_dot8_i32_i4 v0, s0, s1, v0
2144 ; GFX10-DL-NEXT: global_store_dword v1, v0, s[4:5]
2145 ; GFX10-DL-NEXT: s_endpgm
2429 ; GFX9-DL-LABEL: idot8_acc16_vecMul:
2430 ; GFX9-DL: ; %bb.0: ; %entry
2431 ; GFX9-DL-NEXT: s_mov_b32 s8, SCRATCH_RSRC_DWORD0
2432 ; GFX9-DL-NEXT: s_mov_b32 s9, SCRATCH_RSRC_DWORD1
2433 ; GFX9-DL-NEXT: s_mov_b32 s10, -1
2434 ; GFX9-DL-NEXT: s_mov_b32 s11, 0xe00000
2435 ; GFX9-DL-NEXT: s_add_u32 s8, s8, s3
2436 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
2437 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
2438 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
2439 ; GFX9-DL-NEXT: v_mov_b32_e32 v4, 12
2440 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
2441 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
2442 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
2443 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
2444 ; GFX9-DL-NEXT: global_load_ushort v3, v0, s[2:3]
2445 ; GFX9-DL-NEXT: s_addc_u32 s9, s9, 0
2446 ; GFX9-DL-NEXT: s_waitcnt vmcnt(2)
2447 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v5, 4, v1
2448 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v6, 12, v1
2449 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v7, 12, v1
2450 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v8, 8, v1
2451 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v9, 20, v1
2452 ; GFX9-DL-NEXT: v_lshlrev_b16_sdwa v10, v4, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWOR…
2453 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v11, 28, v1
2454 ; GFX9-DL-NEXT: s_waitcnt vmcnt(1)
2455 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v12, 4, v2
2456 ; GFX9-DL-NEXT: v_lshlrev_b16_sdwa v1, v4, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD…
2457 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v13, 12, v2
2458 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v14, 12, v2
2459 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v15, 8, v2
2460 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v16, 20, v2
2461 ; GFX9-DL-NEXT: v_lshlrev_b16_sdwa v17, v4, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWOR…
2462 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v18, 28, v2
2463 ; GFX9-DL-NEXT: v_lshlrev_b16_sdwa v2, v4, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD…
2464 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v4, 12, v5
2465 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v5, 12, v6
2466 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v6, 12, v7
2467 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v7, 12, v8
2468 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v8, 12, v9
2469 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v9, 12, v10
2470 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v10, 12, v11
2471 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v11, 12, v12
2472 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v12, 12, v13
2473 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v4, 12, v4
2474 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v6, 12, v6
2475 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v7, 12, v7
2476 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v11, 12, v11
2477 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v13, 12, v14
2478 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v14, 12, v15
2479 ; GFX9-DL-NEXT: v_lshl_or_b32 v6, v6, 16, v7
2480 ; GFX9-DL-NEXT: v_lshl_or_b32 v7, v11, 16, v12
2481 ; GFX9-DL-NEXT: v_lshl_or_b32 v4, v4, 16, v5
2482 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v8, 12, v8
2483 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v13, 12, v13
2484 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v14, 12, v14
2485 ; GFX9-DL-NEXT: v_pk_mul_lo_u16 v4, v4, v7
2486 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v15, 12, v16
2487 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v16, 12, v17
2488 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v17, 12, v18
2489 ; GFX9-DL-NEXT: v_lshl_or_b32 v8, v8, 16, v9
2490 ; GFX9-DL-NEXT: v_lshl_or_b32 v9, v13, 16, v14
2491 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
2492 ; GFX9-DL-NEXT: v_add_u16_e32 v3, v4, v3
2493 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v1, 12, v1
2494 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v2, 12, v2
2495 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v10, 12, v10
2496 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v15, 12, v15
2497 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v17, 12, v17
2498 ; GFX9-DL-NEXT: v_pk_mul_lo_u16 v5, v6, v9
2499 ; GFX9-DL-NEXT: v_add_u16_sdwa v3, v3, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src…
2500 ; GFX9-DL-NEXT: v_lshl_or_b32 v2, v17, 16, v2
2501 ; GFX9-DL-NEXT: v_lshl_or_b32 v1, v10, 16, v1
2502 ; GFX9-DL-NEXT: v_lshl_or_b32 v10, v15, 16, v16
2503 ; GFX9-DL-NEXT: v_add_u16_e32 v3, v3, v5
2504 ; GFX9-DL-NEXT: v_pk_mul_lo_u16 v1, v1, v2
2505 ; GFX9-DL-NEXT: v_pk_mul_lo_u16 v2, v8, v10
2506 ; GFX9-DL-NEXT: v_add_u16_sdwa v3, v3, v5 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src…
2507 ; GFX9-DL-NEXT: v_add_u16_e32 v3, v3, v2
2508 ; GFX9-DL-NEXT: v_add_u16_sdwa v2, v3, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src…
2509 ; GFX9-DL-NEXT: v_add_u16_e32 v2, v2, v1
2510 ; GFX9-DL-NEXT: v_add_u16_sdwa v1, v2, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src…
2511 ; GFX9-DL-NEXT: global_store_short v0, v1, s[2:3]
2512 ; GFX9-DL-NEXT: s_endpgm
2514 ; GFX10-DL-XNACK-LABEL: idot8_acc16_vecMul:
2515 ; GFX10-DL-XNACK: ; %bb.0: ; %entry
2516 ; GFX10-DL-XNACK-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
2517 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b32_e32 v0, 2, v0
2518 ; GFX10-DL-XNACK-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
2519 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s8, SCRATCH_RSRC_DWORD0
2520 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s9, SCRATCH_RSRC_DWORD1
2521 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s10, -1
2522 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s11, 0x31c16000
2523 ; GFX10-DL-XNACK-NEXT: s_add_u32 s8, s8, s3
2524 ; GFX10-DL-XNACK-NEXT: s_addc_u32 s9, s9, 0
2525 ; GFX10-DL-XNACK-NEXT: s_waitcnt lgkmcnt(0)
2526 ; GFX10-DL-XNACK-NEXT: s_clause 0x1
2527 ; GFX10-DL-XNACK-NEXT: global_load_dword v1, v0, s[4:5]
2528 ; GFX10-DL-XNACK-NEXT: global_load_dword v2, v0, s[6:7]
2529 ; GFX10-DL-XNACK-NEXT: v_mov_b32_e32 v0, 0
2530 ; GFX10-DL-XNACK-NEXT: global_load_ushort v3, v0, s[0:1]
2531 ; GFX10-DL-XNACK-NEXT: s_waitcnt vmcnt(2)
2532 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v4, 4, v1
2533 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v5, 12, v1
2534 ; GFX10-DL-XNACK-NEXT: s_waitcnt vmcnt(1)
2535 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v11, 4, v2
2536 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v12, 12, v2
2537 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v7, 8, v1
2538 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v14, 8, v2
2539 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v4, 12, v4
2540 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v5, 12, v5
2541 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v11, 12, v11
2542 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v12, 12, v12
2543 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v6, 12, v1
2544 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v13, 12, v2
2545 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v7, 12, v7
2546 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v14, 12, v14
2547 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v4, 12, v4
2548 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v11, 12, v11
2549 ; GFX10-DL-XNACK-NEXT: v_and_b32_e32 v12, 0xffff, v12
2550 ; GFX10-DL-XNACK-NEXT: v_and_b32_e32 v5, 0xffff, v5
2551 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v9, 16, v1
2552 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v16, 16, v2
2553 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v6, 12, v6
2554 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v13, 12, v13
2555 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v7, 12, v7
2556 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v14, 12, v14
2557 ; GFX10-DL-XNACK-NEXT: v_lshl_or_b32 v11, v11, 16, v12
2558 ; GFX10-DL-XNACK-NEXT: v_lshl_or_b32 v4, v4, 16, v5
2559 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v8, 20, v1
2560 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v15, 20, v2
2561 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v9, 12, v9
2562 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v16, 12, v16
2563 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v6, 12, v6
2564 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v5, 12, v13
2565 ; GFX10-DL-XNACK-NEXT: v_and_b32_e32 v12, 0xffff, v14
2566 ; GFX10-DL-XNACK-NEXT: v_and_b32_e32 v7, 0xffff, v7
2567 ; GFX10-DL-XNACK-NEXT: v_pk_mul_lo_u16 v4, v4, v11
2568 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v10, 28, v1
2569 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v1, 24, v1
2570 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v17, 28, v2
2571 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v2, 24, v2
2572 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v8, 12, v8
2573 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v15, 12, v15
2574 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v9, 12, v9
2575 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v13, 12, v16
2576 ; GFX10-DL-XNACK-NEXT: v_lshl_or_b32 v5, v5, 16, v12
2577 ; GFX10-DL-XNACK-NEXT: v_lshl_or_b32 v6, v6, 16, v7
2578 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v7, 16, v4
2579 ; GFX10-DL-XNACK-NEXT: s_waitcnt vmcnt(0)
2580 ; GFX10-DL-XNACK-NEXT: v_add_nc_u16 v3, v4, v3
2581 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v1, 12, v1
2582 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v8, 12, v8
2583 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v11, 12, v15
2584 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v2, 12, v2
2585 ; GFX10-DL-XNACK-NEXT: v_and_b32_e32 v4, 0xffff, v13
2586 ; GFX10-DL-XNACK-NEXT: v_and_b32_e32 v9, 0xffff, v9
2587 ; GFX10-DL-XNACK-NEXT: v_pk_mul_lo_u16 v5, v6, v5
2588 ; GFX10-DL-XNACK-NEXT: v_add_nc_u16 v3, v3, v7
2589 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v10, 12, v10
2590 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v17, 12, v17
2591 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v1, 12, v1
2592 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v2, 12, v2
2593 ; GFX10-DL-XNACK-NEXT: v_lshl_or_b32 v4, v11, 16, v4
2594 ; GFX10-DL-XNACK-NEXT: v_lshl_or_b32 v6, v8, 16, v9
2595 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v7, 16, v5
2596 ; GFX10-DL-XNACK-NEXT: v_add_nc_u16 v3, v3, v5
2597 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v10, 12, v10
2598 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v5, 12, v17
2599 ; GFX10-DL-XNACK-NEXT: v_and_b32_e32 v2, 0xffff, v2
2600 ; GFX10-DL-XNACK-NEXT: v_and_b32_e32 v1, 0xffff, v1
2601 ; GFX10-DL-XNACK-NEXT: v_pk_mul_lo_u16 v4, v6, v4
2602 ; GFX10-DL-XNACK-NEXT: v_add_nc_u16 v3, v3, v7
2603 ; GFX10-DL-XNACK-NEXT: v_lshl_or_b32 v2, v5, 16, v2
2604 ; GFX10-DL-XNACK-NEXT: v_lshl_or_b32 v1, v10, 16, v1
2605 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v5, 16, v4
2606 ; GFX10-DL-XNACK-NEXT: v_add_nc_u16 v3, v3, v4
2607 ; GFX10-DL-XNACK-NEXT: v_pk_mul_lo_u16 v1, v1, v2
2608 ; GFX10-DL-XNACK-NEXT: v_add_nc_u16 v2, v3, v5
2609 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v3, 16, v1
2610 ; GFX10-DL-XNACK-NEXT: v_add_nc_u16 v1, v2, v1
2611 ; GFX10-DL-XNACK-NEXT: v_add_nc_u16 v1, v1, v3
2612 ; GFX10-DL-XNACK-NEXT: global_store_short v0, v1, s[0:1]
2613 ; GFX10-DL-XNACK-NEXT: s_endpgm
2615 ; GFX10-DL-NOXNACK-LABEL: idot8_acc16_vecMul:
2616 ; GFX10-DL-NOXNACK: ; %bb.0: ; %entry
2617 ; GFX10-DL-NOXNACK-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
2618 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b32_e32 v0, 2, v0
2619 ; GFX10-DL-NOXNACK-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
2620 ; GFX10-DL-NOXNACK-NEXT: v_mov_b32_e32 v2, 0
2621 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s8, SCRATCH_RSRC_DWORD0
2622 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s9, SCRATCH_RSRC_DWORD1
2623 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s10, -1
2624 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s11, 0x31c16000
2625 ; GFX10-DL-NOXNACK-NEXT: s_add_u32 s8, s8, s3
2626 ; GFX10-DL-NOXNACK-NEXT: s_addc_u32 s9, s9, 0
2627 ; GFX10-DL-NOXNACK-NEXT: s_waitcnt lgkmcnt(0)
2628 ; GFX10-DL-NOXNACK-NEXT: s_clause 0x1
2629 ; GFX10-DL-NOXNACK-NEXT: global_load_dword v1, v0, s[4:5]
2630 ; GFX10-DL-NOXNACK-NEXT: global_load_dword v0, v0, s[6:7]
2631 ; GFX10-DL-NOXNACK-NEXT: global_load_ushort v3, v2, s[0:1]
2632 ; GFX10-DL-NOXNACK-NEXT: s_waitcnt vmcnt(2)
2633 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v4, 4, v1
2634 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v5, 12, v1
2635 ; GFX10-DL-NOXNACK-NEXT: s_waitcnt vmcnt(1)
2636 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v11, 4, v0
2637 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v12, 12, v0
2638 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v7, 8, v1
2639 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v14, 8, v0
2640 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v4, 12, v4
2641 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v5, 12, v5
2642 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v11, 12, v11
2643 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v12, 12, v12
2644 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v6, 12, v1
2645 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v13, 12, v0
2646 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v7, 12, v7
2647 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v14, 12, v14
2648 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v4, 12, v4
2649 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v11, 12, v11
2650 ; GFX10-DL-NOXNACK-NEXT: v_and_b32_e32 v12, 0xffff, v12
2651 ; GFX10-DL-NOXNACK-NEXT: v_and_b32_e32 v5, 0xffff, v5
2652 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v9, 16, v1
2653 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v16, 16, v0
2654 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v6, 12, v6
2655 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v13, 12, v13
2656 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v7, 12, v7
2657 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v14, 12, v14
2658 ; GFX10-DL-NOXNACK-NEXT: v_lshl_or_b32 v11, v11, 16, v12
2659 ; GFX10-DL-NOXNACK-NEXT: v_lshl_or_b32 v4, v4, 16, v5
2660 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v8, 20, v1
2661 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v15, 20, v0
2662 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v9, 12, v9
2663 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v16, 12, v16
2664 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v6, 12, v6
2665 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v5, 12, v13
2666 ; GFX10-DL-NOXNACK-NEXT: v_and_b32_e32 v12, 0xffff, v14
2667 ; GFX10-DL-NOXNACK-NEXT: v_and_b32_e32 v7, 0xffff, v7
2668 ; GFX10-DL-NOXNACK-NEXT: v_pk_mul_lo_u16 v4, v4, v11
2669 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v10, 28, v1
2670 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v1, 24, v1
2671 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v17, 28, v0
2672 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v0, 24, v0
2673 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v8, 12, v8
2674 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v15, 12, v15
2675 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v9, 12, v9
2676 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v13, 12, v16
2677 ; GFX10-DL-NOXNACK-NEXT: v_lshl_or_b32 v5, v5, 16, v12
2678 ; GFX10-DL-NOXNACK-NEXT: v_lshl_or_b32 v6, v6, 16, v7
2679 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v7, 16, v4
2680 ; GFX10-DL-NOXNACK-NEXT: s_waitcnt vmcnt(0)
2681 ; GFX10-DL-NOXNACK-NEXT: v_add_nc_u16 v3, v4, v3
2682 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v1, 12, v1
2683 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v8, 12, v8
2684 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v11, 12, v15
2685 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v0, 12, v0
2686 ; GFX10-DL-NOXNACK-NEXT: v_and_b32_e32 v4, 0xffff, v13
2687 ; GFX10-DL-NOXNACK-NEXT: v_and_b32_e32 v9, 0xffff, v9
2688 ; GFX10-DL-NOXNACK-NEXT: v_pk_mul_lo_u16 v5, v6, v5
2689 ; GFX10-DL-NOXNACK-NEXT: v_add_nc_u16 v3, v3, v7
2690 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v10, 12, v10
2691 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v17, 12, v17
2692 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v1, 12, v1
2693 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v0, 12, v0
2694 ; GFX10-DL-NOXNACK-NEXT: v_lshl_or_b32 v4, v11, 16, v4
2695 ; GFX10-DL-NOXNACK-NEXT: v_lshl_or_b32 v6, v8, 16, v9
2696 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v7, 16, v5
2697 ; GFX10-DL-NOXNACK-NEXT: v_add_nc_u16 v3, v3, v5
2698 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v10, 12, v10
2699 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v5, 12, v17
2700 ; GFX10-DL-NOXNACK-NEXT: v_and_b32_e32 v0, 0xffff, v0
2701 ; GFX10-DL-NOXNACK-NEXT: v_and_b32_e32 v1, 0xffff, v1
2702 ; GFX10-DL-NOXNACK-NEXT: v_pk_mul_lo_u16 v4, v6, v4
2703 ; GFX10-DL-NOXNACK-NEXT: v_add_nc_u16 v3, v3, v7
2704 ; GFX10-DL-NOXNACK-NEXT: v_lshl_or_b32 v0, v5, 16, v0
2705 ; GFX10-DL-NOXNACK-NEXT: v_lshl_or_b32 v1, v10, 16, v1
2706 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v5, 16, v4
2707 ; GFX10-DL-NOXNACK-NEXT: v_add_nc_u16 v3, v3, v4
2708 ; GFX10-DL-NOXNACK-NEXT: v_pk_mul_lo_u16 v0, v1, v0
2709 ; GFX10-DL-NOXNACK-NEXT: v_add_nc_u16 v1, v3, v5
2710 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v3, 16, v0
2711 ; GFX10-DL-NOXNACK-NEXT: v_add_nc_u16 v0, v1, v0
2712 ; GFX10-DL-NOXNACK-NEXT: v_add_nc_u16 v0, v0, v3
2713 ; GFX10-DL-NOXNACK-NEXT: global_store_short v2, v0, s[0:1]
2714 ; GFX10-DL-NOXNACK-NEXT: s_endpgm
2715 ; GFX10-DL-LABEL: idot8_acc16_vecMul:
2716 ; GFX10-DL: ; %bb.0: ; %entry
2717 ; GFX10-DL-NEXT: s_load_dwordx2 s[4:5], s[0:1], 0x34
2718 ; GFX10-DL-NEXT: v_mov_b32_e32 v0, 0
2719 ; GFX10-DL-NEXT: s_mov_b32 s12, SCRATCH_RSRC_DWORD0
2720 ; GFX10-DL-NEXT: s_mov_b32 s13, SCRATCH_RSRC_DWORD1
2721 ; GFX10-DL-NEXT: s_mov_b32 s14, -1
2722 ; GFX10-DL-NEXT: s_mov_b32 s15, 0x31c16000
2723 ; GFX10-DL-NEXT: s_add_u32 s12, s12, s3
2724 ; GFX10-DL-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24
2725 ; GFX10-DL-NEXT: s_addc_u32 s13, s13, 0
2726 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
2727 ; GFX10-DL-NEXT: global_load_ushort v1, v0, s[4:5]
2728 ; GFX10-DL-NEXT: s_load_dword s0, s[0:1], 0x0
2729 ; GFX10-DL-NEXT: s_load_dword s1, s[2:3], 0x0
2730 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
2731 ; GFX10-DL-NEXT: s_bfe_u32 s2, s0, 0x40018
2732 ; GFX10-DL-NEXT: s_lshr_b32 s3, s0, 28
2733 ; GFX10-DL-NEXT: s_bfe_u32 s6, s0, 0x40010
2734 ; GFX10-DL-NEXT: s_bfe_u32 s7, s0, 0x40014
2735 ; GFX10-DL-NEXT: s_bfe_u32 s8, s0, 0x40008
2736 ; GFX10-DL-NEXT: s_bfe_u32 s9, s0, 0x4000c
2737 ; GFX10-DL-NEXT: s_and_b32 s10, s0, 15
2738 ; GFX10-DL-NEXT: s_bfe_u32 s0, s0, 0x40004
2739 ; GFX10-DL-NEXT: s_and_b32 s11, s1, 15
2740 ; GFX10-DL-NEXT: s_pack_ll_b32_b16 s0, s10, s0
2741 ; GFX10-DL-NEXT: s_bfe_u32 s10, s1, 0x40004
2742 ; GFX10-DL-NEXT: v_pk_lshlrev_b16 v2, 12, s0 op_sel_hi:[0,1]
2743 ; GFX10-DL-NEXT: s_pack_ll_b32_b16 s0, s11, s10
2744 ; GFX10-DL-NEXT: s_bfe_u32 s11, s1, 0x4000c
2745 ; GFX10-DL-NEXT: v_pk_lshlrev_b16 v3, 12, s0 op_sel_hi:[0,1]
2746 ; GFX10-DL-NEXT: s_bfe_u32 s0, s1, 0x40008
2747 ; GFX10-DL-NEXT: v_pk_ashrrev_i16 v2, 12, v2 op_sel_hi:[0,1]
2748 ; GFX10-DL-NEXT: s_pack_ll_b32_b16 s8, s8, s9
2749 ; GFX10-DL-NEXT: s_pack_ll_b32_b16 s0, s0, s11
2750 ; GFX10-DL-NEXT: v_pk_ashrrev_i16 v3, 12, v3 op_sel_hi:[0,1]
2751 ; GFX10-DL-NEXT: v_pk_lshlrev_b16 v4, 12, s8 op_sel_hi:[0,1]
2752 ; GFX10-DL-NEXT: v_pk_lshlrev_b16 v5, 12, s0 op_sel_hi:[0,1]
2753 ; GFX10-DL-NEXT: s_bfe_u32 s8, s1, 0x40010
2754 ; GFX10-DL-NEXT: s_bfe_u32 s0, s1, 0x40014
2755 ; GFX10-DL-NEXT: v_pk_mul_lo_u16 v2, v2, v3
2756 ; GFX10-DL-NEXT: v_pk_ashrrev_i16 v3, 12, v4 op_sel_hi:[0,1]
2757 ; GFX10-DL-NEXT: v_pk_ashrrev_i16 v4, 12, v5 op_sel_hi:[0,1]
2758 ; GFX10-DL-NEXT: s_pack_ll_b32_b16 s6, s6, s7
2759 ; GFX10-DL-NEXT: s_pack_ll_b32_b16 s0, s8, s0
2760 ; GFX10-DL-NEXT: v_pk_lshlrev_b16 v5, 12, s6 op_sel_hi:[0,1]
2761 ; GFX10-DL-NEXT: v_pk_lshlrev_b16 v6, 12, s0 op_sel_hi:[0,1]
2762 ; GFX10-DL-NEXT: v_pk_mul_lo_u16 v3, v3, v4
2763 ; GFX10-DL-NEXT: s_bfe_u32 s10, s1, 0x40018
2764 ; GFX10-DL-NEXT: s_lshr_b32 s0, s1, 28
2765 ; GFX10-DL-NEXT: s_pack_ll_b32_b16 s1, s2, s3
2766 ; GFX10-DL-NEXT: v_pk_ashrrev_i16 v4, 12, v6 op_sel_hi:[0,1]
2767 ; GFX10-DL-NEXT: s_pack_ll_b32_b16 s0, s10, s0
2768 ; GFX10-DL-NEXT: v_pk_lshlrev_b16 v6, 12, s0 op_sel_hi:[0,1]
2769 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
2770 ; GFX10-DL-NEXT: v_add_nc_u32_e32 v1, v2, v1
2771 ; GFX10-DL-NEXT: v_add_nc_u32_sdwa v1, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD…
2772 ; GFX10-DL-NEXT: v_pk_ashrrev_i16 v2, 12, v5 op_sel_hi:[0,1]
2773 ; GFX10-DL-NEXT: v_pk_lshlrev_b16 v5, 12, s1 op_sel_hi:[0,1]
2774 ; GFX10-DL-NEXT: v_add_nc_u32_sdwa v1, v1, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_…
2775 ; GFX10-DL-NEXT: v_pk_mul_lo_u16 v2, v2, v4
2776 ; GFX10-DL-NEXT: v_pk_ashrrev_i16 v4, 12, v6 op_sel_hi:[0,1]
2777 ; GFX10-DL-NEXT: v_add_nc_u32_sdwa v1, v1, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD…
2778 ; GFX10-DL-NEXT: v_pk_ashrrev_i16 v3, 12, v5 op_sel_hi:[0,1]
2779 ; GFX10-DL-NEXT: v_add_nc_u32_e32 v1, v1, v2
2780 ; GFX10-DL-NEXT: v_pk_mul_lo_u16 v3, v3, v4
2781 ; GFX10-DL-NEXT: v_add_nc_u32_sdwa v1, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD…
2782 ; GFX10-DL-NEXT: v_add_nc_u32_e32 v1, v1, v3
2783 ; GFX10-DL-NEXT: v_add_nc_u32_sdwa v1, v1, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD…
2784 ; GFX10-DL-NEXT: global_store_short v0, v1, s[4:5]
2785 ; GFX10-DL-NEXT: s_endpgm
3121 ; GFX9-DL-LABEL: idot8_acc8_vecMul:
3122 ; GFX9-DL: ; %bb.0: ; %entry
3123 ; GFX9-DL-NEXT: s_mov_b32 s8, SCRATCH_RSRC_DWORD0
3124 ; GFX9-DL-NEXT: s_mov_b32 s9, SCRATCH_RSRC_DWORD1
3125 ; GFX9-DL-NEXT: s_mov_b32 s10, -1
3126 ; GFX9-DL-NEXT: s_mov_b32 s11, 0xe00000
3127 ; GFX9-DL-NEXT: s_add_u32 s8, s8, s3
3128 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
3129 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
3130 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
3131 ; GFX9-DL-NEXT: v_mov_b32_e32 v3, 0
3132 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
3133 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
3134 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
3135 ; GFX9-DL-NEXT: global_load_ubyte v4, v3, s[2:3]
3136 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 12
3137 ; GFX9-DL-NEXT: s_addc_u32 s9, s9, 0
3138 ; GFX9-DL-NEXT: s_waitcnt vmcnt(2)
3139 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v5, 20, v1
3140 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v6, 28, v1
3141 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v7, 12, v1
3142 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v8, 8, v1
3143 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v9, 4, v1
3144 ; GFX9-DL-NEXT: s_waitcnt vmcnt(1)
3145 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v10, 20, v2
3146 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v11, 28, v2
3147 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v14, 4, v2
3148 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v15, 12, v1
3149 ; GFX9-DL-NEXT: v_lshlrev_b16_sdwa v16, v0, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWOR…
3150 ; GFX9-DL-NEXT: v_lshlrev_b16_sdwa v1, v0, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD…
3151 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v17, 12, v2
3152 ; GFX9-DL-NEXT: v_lshlrev_b16_sdwa v18, v0, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWOR…
3153 ; GFX9-DL-NEXT: v_lshlrev_b16_sdwa v0, v0, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD…
3154 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v12, 12, v2
3155 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v13, 8, v2
3156 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v2, 12, v9
3157 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v9, 12, v15
3158 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v15, 12, v16
3159 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v6, 12, v6
3160 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v16, 12, v1
3161 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v1, 12, v5
3162 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v5, 12, v14
3163 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v14, 12, v17
3164 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v17, 12, v18
3165 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v11, 12, v11
3166 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v18, 12, v0
3167 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v0, 12, v10
3168 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v8, 12, v8
3169 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v7, 12, v7
3170 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v13, 12, v13
3171 ; GFX9-DL-NEXT: v_lshlrev_b16_e32 v12, 12, v12
3172 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v6, 12, v6
3173 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v1, 12, v1
3174 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v11, 12, v11
3175 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v0, 12, v0
3176 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v8, 12, v8
3177 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v7, 12, v7
3178 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v10, 12, v13
3179 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v12, 12, v12
3180 ; GFX9-DL-NEXT: v_mul_lo_u16_e32 v19, v15, v17
3181 ; GFX9-DL-NEXT: v_mul_lo_u16_sdwa v0, v1, v0 dst_sel:BYTE_1 dst_unused:UNUSED_PAD src0_sel:DWORD…
3182 ; GFX9-DL-NEXT: v_mul_lo_u16_sdwa v1, v6, v11 dst_sel:BYTE_1 dst_unused:UNUSED_PAD src0_sel:DWOR…
3183 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v2, 12, v2
3184 ; GFX9-DL-NEXT: v_ashrrev_i16_e32 v5, 12, v5
3185 ; GFX9-DL-NEXT: v_mul_lo_u16_e32 v13, v16, v18
3186 ; GFX9-DL-NEXT: v_mul_lo_u16_sdwa v6, v7, v12 dst_sel:BYTE_1 dst_unused:UNUSED_PAD src0_sel:DWOR…
3187 ; GFX9-DL-NEXT: v_mul_lo_u16_e32 v7, v8, v10
3188 ; GFX9-DL-NEXT: v_or_b32_sdwa v1, v19, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 sr…
3189 ; GFX9-DL-NEXT: v_mul_lo_u16_e32 v9, v9, v14
3190 ; GFX9-DL-NEXT: v_mul_lo_u16_sdwa v2, v2, v5 dst_sel:BYTE_1 dst_unused:UNUSED_PAD src0_sel:DWORD…
3191 ; GFX9-DL-NEXT: v_or_b32_sdwa v5, v13, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 sr…
3192 ; GFX9-DL-NEXT: v_or_b32_sdwa v6, v7, v6 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src…
3193 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v8, 16, v1
3194 ; GFX9-DL-NEXT: v_or_b32_sdwa v7, v9, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src…
3195 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 16, v6
3196 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v9, 8, v1
3197 ; GFX9-DL-NEXT: v_or_b32_sdwa v1, v5, v8 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_0 src…
3198 ; GFX9-DL-NEXT: v_or_b32_e32 v2, v2, v0
3199 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v5, 8, v1
3200 ; GFX9-DL-NEXT: v_lshrrev_b64 v[0:1], 24, v[0:1]
3201 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v2, 8, v2
3202 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
3203 ; GFX9-DL-NEXT: v_add_u16_e32 v1, v7, v4
3204 ; GFX9-DL-NEXT: v_add_u16_e32 v1, v1, v2
3205 ; GFX9-DL-NEXT: v_add_u16_e32 v1, v1, v6
3206 ; GFX9-DL-NEXT: v_add_u16_e32 v0, v1, v0
3207 ; GFX9-DL-NEXT: v_mad_legacy_u16 v0, v16, v18, v0
3208 ; GFX9-DL-NEXT: v_add_u16_e32 v0, v0, v5
3209 ; GFX9-DL-NEXT: v_mad_legacy_u16 v0, v15, v17, v0
3210 ; GFX9-DL-NEXT: v_add_u16_e32 v0, v0, v9
3211 ; GFX9-DL-NEXT: global_store_byte v3, v0, s[2:3]
3212 ; GFX9-DL-NEXT: s_endpgm
3214 ; GFX10-DL-XNACK-LABEL: idot8_acc8_vecMul:
3215 ; GFX10-DL-XNACK: ; %bb.0: ; %entry
3216 ; GFX10-DL-XNACK-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
3217 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b32_e32 v0, 2, v0
3218 ; GFX10-DL-XNACK-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
3219 ; GFX10-DL-XNACK-NEXT: v_mov_b32_e32 v4, 0
3220 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s8, SCRATCH_RSRC_DWORD0
3221 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s9, SCRATCH_RSRC_DWORD1
3222 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s10, -1
3223 ; GFX10-DL-XNACK-NEXT: s_mov_b32 s11, 0x31c16000
3224 ; GFX10-DL-XNACK-NEXT: s_add_u32 s8, s8, s3
3225 ; GFX10-DL-XNACK-NEXT: s_addc_u32 s9, s9, 0
3226 ; GFX10-DL-XNACK-NEXT: s_waitcnt lgkmcnt(0)
3227 ; GFX10-DL-XNACK-NEXT: s_clause 0x1
3228 ; GFX10-DL-XNACK-NEXT: global_load_dword v1, v0, s[4:5]
3229 ; GFX10-DL-XNACK-NEXT: global_load_dword v2, v0, s[6:7]
3230 ; GFX10-DL-XNACK-NEXT: global_load_ubyte v3, v4, s[0:1]
3231 ; GFX10-DL-XNACK-NEXT: s_waitcnt vmcnt(2)
3232 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v8, 12, v1
3233 ; GFX10-DL-XNACK-NEXT: s_waitcnt vmcnt(1)
3234 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v15, 12, v2
3235 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v9, 8, v1
3236 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v16, 8, v2
3237 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v6, 28, v1
3238 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v8, 12, v8
3239 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v15, 12, v15
3240 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v13, 28, v2
3241 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v10, 4, v1
3242 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v17, 4, v2
3243 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v9, 12, v9
3244 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v16, 12, v16
3245 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v8, 12, v8
3246 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v15, 12, v15
3247 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v0, 20, v1
3248 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v7, 24, v1
3249 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v11, 20, v2
3250 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v14, 24, v2
3251 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v6, 12, v6
3252 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v13, 12, v13
3253 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v10, 12, v10
3254 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v17, 12, v17
3255 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v9, 12, v9
3256 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v16, 12, v16
3257 ; GFX10-DL-XNACK-NEXT: v_mul_lo_u16 v8, v8, v15
3258 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v5, 16, v1
3259 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v12, 16, v2
3260 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v7, 12, v7
3261 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v0, 12, v0
3262 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v14, 12, v14
3263 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v11, 12, v11
3264 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v6, 12, v6
3265 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v13, 12, v13
3266 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v1, 12, v1
3267 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v2, 12, v2
3268 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v10, 12, v10
3269 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v15, 12, v17
3270 ; GFX10-DL-XNACK-NEXT: v_mul_lo_u16 v9, v9, v16
3271 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v8, 8, v8
3272 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v5, 12, v5
3273 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v12, 12, v12
3274 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v7, 12, v7
3275 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v0, 12, v0
3276 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v14, 12, v14
3277 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v11, 12, v11
3278 ; GFX10-DL-XNACK-NEXT: v_mul_lo_u16 v6, v6, v13
3279 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v1, 12, v1
3280 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v2, 12, v2
3281 ; GFX10-DL-XNACK-NEXT: v_mul_lo_u16 v10, v10, v15
3282 ; GFX10-DL-XNACK-NEXT: v_or_b32_sdwa v8, v9, v8 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYT…
3283 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v5, 12, v5
3284 ; GFX10-DL-XNACK-NEXT: v_ashrrev_i16 v12, 12, v12
3285 ; GFX10-DL-XNACK-NEXT: v_mul_lo_u16 v9, v0, v11
3286 ; GFX10-DL-XNACK-NEXT: v_mul_lo_u16 v11, v7, v14
3287 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v6, 8, v6
3288 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v10, 8, v10
3289 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b32_e32 v0, 16, v8
3290 ; GFX10-DL-XNACK-NEXT: v_mul_lo_u16 v1, v1, v2
3291 ; GFX10-DL-XNACK-NEXT: v_mul_lo_u16 v2, v5, v12
3292 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b16 v9, 8, v9
3293 ; GFX10-DL-XNACK-NEXT: v_or_b32_sdwa v6, v11, v6 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BY…
3294 ; GFX10-DL-XNACK-NEXT: v_or_b32_sdwa v11, v10, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:W…
3295 ; GFX10-DL-XNACK-NEXT: v_or_b32_sdwa v1, v1, v10 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BY…
3296 ; GFX10-DL-XNACK-NEXT: v_or_b32_sdwa v2, v2, v9 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYT…
3297 ; GFX10-DL-XNACK-NEXT: v_lshlrev_b32_e32 v9, 16, v6
3298 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v10, 8, v11
3299 ; GFX10-DL-XNACK-NEXT: s_waitcnt vmcnt(0)
3300 ; GFX10-DL-XNACK-NEXT: v_add_nc_u16 v3, v1, v3
3301 ; GFX10-DL-XNACK-NEXT: v_or_b32_sdwa v1, v2, v9 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WOR…
3302 ; GFX10-DL-XNACK-NEXT: v_add_nc_u16 v9, v3, v10
3303 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b64 v[2:3], 24, v[0:1]
3304 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v1, 8, v1
3305 ; GFX10-DL-XNACK-NEXT: v_add_nc_u16 v0, v9, v8
3306 ; GFX10-DL-XNACK-NEXT: v_add_nc_u16 v0, v0, v2
3307 ; GFX10-DL-XNACK-NEXT: v_mad_u16 v0, v5, v12, v0
3308 ; GFX10-DL-XNACK-NEXT: v_add_nc_u16 v0, v0, v1
3309 ; GFX10-DL-XNACK-NEXT: v_lshrrev_b32_e32 v1, 8, v6
3310 ; GFX10-DL-XNACK-NEXT: v_mad_u16 v0, v7, v14, v0
3311 ; GFX10-DL-XNACK-NEXT: v_add_nc_u16 v0, v0, v1
3312 ; GFX10-DL-XNACK-NEXT: global_store_byte v4, v0, s[0:1]
3313 ; GFX10-DL-XNACK-NEXT: s_endpgm
3315 ; GFX10-DL-NOXNACK-LABEL: idot8_acc8_vecMul:
3316 ; GFX10-DL-NOXNACK: ; %bb.0: ; %entry
3317 ; GFX10-DL-NOXNACK-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
3318 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b32_e32 v0, 2, v0
3319 ; GFX10-DL-NOXNACK-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
3320 ; GFX10-DL-NOXNACK-NEXT: v_mov_b32_e32 v4, 0
3321 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s8, SCRATCH_RSRC_DWORD0
3322 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s9, SCRATCH_RSRC_DWORD1
3323 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s10, -1
3324 ; GFX10-DL-NOXNACK-NEXT: s_mov_b32 s11, 0x31c16000
3325 ; GFX10-DL-NOXNACK-NEXT: s_add_u32 s8, s8, s3
3326 ; GFX10-DL-NOXNACK-NEXT: s_addc_u32 s9, s9, 0
3327 ; GFX10-DL-NOXNACK-NEXT: s_waitcnt lgkmcnt(0)
3328 ; GFX10-DL-NOXNACK-NEXT: s_clause 0x1
3329 ; GFX10-DL-NOXNACK-NEXT: global_load_dword v1, v0, s[4:5]
3330 ; GFX10-DL-NOXNACK-NEXT: global_load_dword v0, v0, s[6:7]
3331 ; GFX10-DL-NOXNACK-NEXT: global_load_ubyte v2, v4, s[0:1]
3332 ; GFX10-DL-NOXNACK-NEXT: s_waitcnt vmcnt(2)
3333 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v8, 12, v1
3334 ; GFX10-DL-NOXNACK-NEXT: s_waitcnt vmcnt(1)
3335 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v15, 12, v0
3336 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v9, 8, v1
3337 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v11, 20, v0
3338 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v12, 16, v0
3339 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v13, 28, v0
3340 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v14, 24, v0
3341 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v16, 8, v0
3342 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v17, 4, v0
3343 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v0, 12, v0
3344 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v8, 12, v8
3345 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v15, 12, v15
3346 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v6, 28, v1
3347 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v10, 4, v1
3348 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v9, 12, v9
3349 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v18, 12, v0
3350 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v0, 12, v16
3351 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v8, 12, v8
3352 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v15, 12, v15
3353 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v3, 20, v1
3354 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v7, 24, v1
3355 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v6, 12, v6
3356 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v13, 12, v13
3357 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v10, 12, v10
3358 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v17, 12, v17
3359 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v9, 12, v9
3360 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v0, 12, v0
3361 ; GFX10-DL-NOXNACK-NEXT: v_mul_lo_u16 v8, v8, v15
3362 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v5, 16, v1
3363 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v7, 12, v7
3364 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v3, 12, v3
3365 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v14, 12, v14
3366 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v11, 12, v11
3367 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v6, 12, v6
3368 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v13, 12, v13
3369 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v1, 12, v1
3370 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v10, 12, v10
3371 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v15, 12, v17
3372 ; GFX10-DL-NOXNACK-NEXT: v_mul_lo_u16 v0, v9, v0
3373 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v8, 8, v8
3374 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v5, 12, v5
3375 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v12, 12, v12
3376 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v7, 12, v7
3377 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v3, 12, v3
3378 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v14, 12, v14
3379 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v9, 12, v11
3380 ; GFX10-DL-NOXNACK-NEXT: v_mul_lo_u16 v6, v6, v13
3381 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v1, 12, v1
3382 ; GFX10-DL-NOXNACK-NEXT: v_mul_lo_u16 v10, v10, v15
3383 ; GFX10-DL-NOXNACK-NEXT: v_or_b32_sdwa v8, v0, v8 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:B…
3384 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v5, 12, v5
3385 ; GFX10-DL-NOXNACK-NEXT: v_ashrrev_i16 v11, 12, v12
3386 ; GFX10-DL-NOXNACK-NEXT: v_mul_lo_u16 v3, v3, v9
3387 ; GFX10-DL-NOXNACK-NEXT: v_mul_lo_u16 v9, v7, v14
3388 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v6, 8, v6
3389 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v10, 8, v10
3390 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b32_e32 v0, 16, v8
3391 ; GFX10-DL-NOXNACK-NEXT: v_mul_lo_u16 v1, v1, v18
3392 ; GFX10-DL-NOXNACK-NEXT: v_mul_lo_u16 v12, v5, v11
3393 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b16 v3, 8, v3
3394 ; GFX10-DL-NOXNACK-NEXT: v_or_b32_sdwa v6, v9, v6 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:B…
3395 ; GFX10-DL-NOXNACK-NEXT: v_or_b32_sdwa v9, v10, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:…
3396 ; GFX10-DL-NOXNACK-NEXT: v_or_b32_sdwa v1, v1, v10 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:…
3397 ; GFX10-DL-NOXNACK-NEXT: v_or_b32_sdwa v3, v12, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:…
3398 ; GFX10-DL-NOXNACK-NEXT: v_lshlrev_b32_e32 v10, 16, v6
3399 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v9, 8, v9
3400 ; GFX10-DL-NOXNACK-NEXT: s_waitcnt vmcnt(0)
3401 ; GFX10-DL-NOXNACK-NEXT: v_add_nc_u16 v2, v1, v2
3402 ; GFX10-DL-NOXNACK-NEXT: v_or_b32_sdwa v1, v3, v10 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:…
3403 ; GFX10-DL-NOXNACK-NEXT: v_add_nc_u16 v9, v2, v9
3404 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b64 v[2:3], 24, v[0:1]
3405 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v1, 8, v1
3406 ; GFX10-DL-NOXNACK-NEXT: v_add_nc_u16 v0, v9, v8
3407 ; GFX10-DL-NOXNACK-NEXT: v_add_nc_u16 v0, v0, v2
3408 ; GFX10-DL-NOXNACK-NEXT: v_mad_u16 v0, v5, v11, v0
3409 ; GFX10-DL-NOXNACK-NEXT: v_add_nc_u16 v0, v0, v1
3410 ; GFX10-DL-NOXNACK-NEXT: v_lshrrev_b32_e32 v1, 8, v6
3411 ; GFX10-DL-NOXNACK-NEXT: v_mad_u16 v0, v7, v14, v0
3412 ; GFX10-DL-NOXNACK-NEXT: v_add_nc_u16 v0, v0, v1
3413 ; GFX10-DL-NOXNACK-NEXT: global_store_byte v4, v0, s[0:1]
3414 ; GFX10-DL-NOXNACK-NEXT: s_endpgm
3415 ; GFX10-DL-LABEL: idot8_acc8_vecMul:
3416 ; GFX10-DL: ; %bb.0: ; %entry
3417 ; GFX10-DL-NEXT: s_load_dwordx2 s[4:5], s[0:1], 0x34
3418 ; GFX10-DL-NEXT: v_mov_b32_e32 v0, 0
3419 ; GFX10-DL-NEXT: s_mov_b32 s20, SCRATCH_RSRC_DWORD0
3420 ; GFX10-DL-NEXT: s_mov_b32 s21, SCRATCH_RSRC_DWORD1
3421 ; GFX10-DL-NEXT: s_mov_b32 s22, -1
3422 ; GFX10-DL-NEXT: s_mov_b32 s23, 0x31c16000
3423 ; GFX10-DL-NEXT: s_add_u32 s20, s20, s3
3424 ; GFX10-DL-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24
3425 ; GFX10-DL-NEXT: s_addc_u32 s21, s21, 0
3426 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
3427 ; GFX10-DL-NEXT: global_load_ubyte v1, v0, s[4:5]
3428 ; GFX10-DL-NEXT: s_load_dword s0, s[0:1], 0x0
3429 ; GFX10-DL-NEXT: s_load_dword s1, s[2:3], 0x0
3430 ; GFX10-DL-NEXT: s_mov_b32 s2, 0xffff
3431 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
3432 ; GFX10-DL-NEXT: s_lshr_b32 s9, s0, 4
3433 ; GFX10-DL-NEXT: s_lshr_b32 s16, s1, 4
3434 ; GFX10-DL-NEXT: v_lshlrev_b16_e64 v6, 12, s9
3435 ; GFX10-DL-NEXT: v_lshlrev_b16_e64 v12, 12, s16
3436 ; GFX10-DL-NEXT: s_lshr_b32 s10, s0, 12
3437 ; GFX10-DL-NEXT: s_lshr_b32 s17, s1, 12
3438 ; GFX10-DL-NEXT: v_lshlrev_b16_e64 v2, 12, s0
3439 ; GFX10-DL-NEXT: v_lshlrev_b16_e64 v3, 12, s1
3440 ; GFX10-DL-NEXT: v_lshlrev_b16_e64 v13, 12, s17
3441 ; GFX10-DL-NEXT: v_lshlrev_b16_e64 v5, 12, s10
3442 ; GFX10-DL-NEXT: v_ashrrev_i16_e64 v6, 12, v6
3443 ; GFX10-DL-NEXT: v_ashrrev_i16_e64 v12, 12, v12
3444 ; GFX10-DL-NEXT: s_lshr_b32 s11, s0, 8
3445 ; GFX10-DL-NEXT: s_lshr_b32 s18, s1, 8
3446 ; GFX10-DL-NEXT: v_lshlrev_b16_e64 v4, 12, s11
3447 ; GFX10-DL-NEXT: v_lshlrev_b16_e64 v11, 12, s18
3448 ; GFX10-DL-NEXT: v_ashrrev_i16_e64 v2, 12, v2
3449 ; GFX10-DL-NEXT: v_ashrrev_i16_e64 v3, 12, v3
3450 ; GFX10-DL-NEXT: v_ashrrev_i16_e64 v19, 12, v5
3451 ; GFX10-DL-NEXT: v_mul_lo_u16_e64 v6, v6, v12
3452 ; GFX10-DL-NEXT: v_ashrrev_i16_e64 v13, 12, v13
3453 ; GFX10-DL-NEXT: v_ashrrev_i16_e64 v4, 12, v4
3454 ; GFX10-DL-NEXT: v_ashrrev_i16_e64 v11, 12, v11
3455 ; GFX10-DL-NEXT: v_mul_lo_u16_e64 v2, v2, v3
3456 ; GFX10-DL-NEXT: v_lshlrev_b16_e64 v5, 8, v6
3457 ; GFX10-DL-NEXT: v_mul_lo_u16_e64 v3, v19, v13
3458 ; GFX10-DL-NEXT: s_lshr_b32 s3, s0, 20
3459 ; GFX10-DL-NEXT: s_lshr_b32 s6, s0, 16
3460 ; GFX10-DL-NEXT: s_lshr_b32 s7, s0, 28
3461 ; GFX10-DL-NEXT: s_lshr_b32 s8, s0, 24
3462 ; GFX10-DL-NEXT: s_lshr_b32 s12, s1, 20
3463 ; GFX10-DL-NEXT: v_or_b32_sdwa v2, v2, v5 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 sr…
3464 ; GFX10-DL-NEXT: v_lshlrev_b16_e64 v7, 12, s8
3465 ; GFX10-DL-NEXT: v_lshlrev_b16_e64 v8, 12, s7
3466 ; GFX10-DL-NEXT: v_lshlrev_b16_e64 v9, 12, s6
3467 ; GFX10-DL-NEXT: v_lshlrev_b16_e64 v10, 12, s3
3468 ; GFX10-DL-NEXT: v_lshlrev_b16_e64 v12, 12, s12
3469 ; GFX10-DL-NEXT: v_mul_lo_u16_e64 v4, v4, v11
3470 ; GFX10-DL-NEXT: v_lshlrev_b16_e64 v3, 8, v3
3471 ; GFX10-DL-NEXT: s_lshr_b32 s13, s1, 16
3472 ; GFX10-DL-NEXT: s_lshr_b32 s14, s1, 28
3473 ; GFX10-DL-NEXT: v_lshlrev_b16_e64 v6, 12, s13
3474 ; GFX10-DL-NEXT: v_ashrrev_i16_e64 v5, 12, v7
3475 ; GFX10-DL-NEXT: v_ashrrev_i16_e64 v7, 12, v8
3476 ; GFX10-DL-NEXT: v_ashrrev_i16_e64 v8, 12, v9
3477 ; GFX10-DL-NEXT: v_or_b32_sdwa v3, v4, v3 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:BYTE_0 s…
3478 ; GFX10-DL-NEXT: v_and_b32_e32 v2, s2, v2
3479 ; GFX10-DL-NEXT: v_lshlrev_b16_e64 v15, 12, s14
3480 ; GFX10-DL-NEXT: v_ashrrev_i16_e64 v4, 12, v10
3481 ; GFX10-DL-NEXT: v_ashrrev_i16_e64 v9, 12, v12
3482 ; GFX10-DL-NEXT: s_lshr_b32 s15, s1, 24
3483 ; GFX10-DL-NEXT: v_ashrrev_i16_e64 v6, 12, v6
3484 ; GFX10-DL-NEXT: v_ashrrev_i16_e64 v10, 12, v15
3485 ; GFX10-DL-NEXT: v_lshlrev_b16_e64 v14, 12, s15
3486 ; GFX10-DL-NEXT: v_or_b32_e32 v3, v2, v3
3487 ; GFX10-DL-NEXT: v_mul_lo_u16_e64 v4, v4, v9
3488 ; GFX10-DL-NEXT: v_mul_lo_u16_e64 v15, v8, v6
3489 ; GFX10-DL-NEXT: v_mul_lo_u16_e64 v7, v7, v10
3490 ; GFX10-DL-NEXT: v_ashrrev_i16_e64 v11, 12, v14
3491 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v8, 8, v3
3492 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
3493 ; GFX10-DL-NEXT: v_add_nc_u32_e32 v1, v2, v1
3494 ; GFX10-DL-NEXT: v_lshlrev_b16_e64 v2, 8, v4
3495 ; GFX10-DL-NEXT: v_mul_lo_u16_e64 v4, v5, v11
3496 ; GFX10-DL-NEXT: v_lshlrev_b16_e64 v5, 8, v7
3497 ; GFX10-DL-NEXT: v_add_nc_u32_e32 v1, v1, v8
3498 ; GFX10-DL-NEXT: v_or_b32_sdwa v2, v15, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 s…
3499 ; GFX10-DL-NEXT: v_or_b32_sdwa v4, v4, v5 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:BYTE_0 s…
3500 ; GFX10-DL-NEXT: v_add_nc_u32_sdwa v1, v1, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_…
3501 ; GFX10-DL-NEXT: v_and_b32_e32 v2, s2, v2
3502 ; GFX10-DL-NEXT: v_add_nc_u32_sdwa v1, v1, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD…
3503 ; GFX10-DL-NEXT: v_or_b32_e32 v3, v2, v4
3504 ; GFX10-DL-NEXT: v_add_nc_u32_e32 v1, v1, v2
3505 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v2, 8, v3
3506 ; GFX10-DL-NEXT: v_add_nc_u32_e32 v1, v1, v2
3507 ; GFX10-DL-NEXT: v_add_nc_u32_sdwa v1, v1, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD…
3508 ; GFX10-DL-NEXT: v_add_nc_u32_sdwa v1, v1, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD…
3509 ; GFX10-DL-NEXT: global_store_byte v0, v1, s[4:5]
3510 ; GFX10-DL-NEXT: s_endpgm