Lines Matching refs:DL
5 … llc -mtriple=amdgcn -mcpu=gfx906 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX9-DL %s
6 …lc -mtriple=amdgcn -mcpu=gfx1011 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX10-DL %s
7 …lc -mtriple=amdgcn -mcpu=gfx1012 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX10-DL %s
100 ; GFX9-DL-LABEL: udot4_acc32:
101 ; GFX9-DL: ; %bb.0: ; %entry
102 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
103 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
104 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
105 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
106 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
107 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
108 ; GFX9-DL-NEXT: s_load_dword s0, s[2:3], 0x0
109 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
110 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
111 ; GFX9-DL-NEXT: v_dot4_u32_u8 v1, v1, v2, s0
112 ; GFX9-DL-NEXT: global_store_dword v0, v1, s[2:3]
113 ; GFX9-DL-NEXT: s_endpgm
115 ; GFX10-DL-LABEL: udot4_acc32:
116 ; GFX10-DL: ; %bb.0: ; %entry
117 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
118 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
119 ; GFX10-DL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
120 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
121 ; GFX10-DL-NEXT: s_clause 0x1
122 ; GFX10-DL-NEXT: global_load_dword v1, v0, s[4:5]
123 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[6:7]
124 ; GFX10-DL-NEXT: v_mov_b32_e32 v0, 0
125 ; GFX10-DL-NEXT: s_load_dword s2, s[0:1], 0x0
126 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
127 ; GFX10-DL-NEXT: v_dot4_u32_u8 v1, v1, v2, s2
128 ; GFX10-DL-NEXT: global_store_dword v0, v1, s[0:1]
129 ; GFX10-DL-NEXT: s_endpgm
277 ; GFX9-DL-LABEL: udot4_acc16:
278 ; GFX9-DL: ; %bb.0: ; %entry
279 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
280 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
281 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
282 ; GFX9-DL-NEXT: s_movk_i32 s0, 0xff
283 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
284 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
285 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
286 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
287 ; GFX9-DL-NEXT: global_load_ushort v3, v0, s[2:3]
288 ; GFX9-DL-NEXT: s_waitcnt vmcnt(2)
289 ; GFX9-DL-NEXT: v_and_b32_e32 v4, 0xff, v1
290 ; GFX9-DL-NEXT: s_waitcnt vmcnt(1)
291 ; GFX9-DL-NEXT: v_and_b32_e32 v5, 0xff, v2
292 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v6, 8, v1
293 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v7, 8, v2
294 ; GFX9-DL-NEXT: v_and_b32_e32 v6, 0xff, v6
295 ; GFX9-DL-NEXT: v_and_b32_e32 v7, 0xff, v7
296 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
297 ; GFX9-DL-NEXT: v_mad_legacy_u16 v3, v4, v5, v3
298 ; GFX9-DL-NEXT: v_and_b32_sdwa v8, v1, s0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 sr…
299 ; GFX9-DL-NEXT: v_and_b32_sdwa v9, v2, s0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 sr…
300 ; GFX9-DL-NEXT: v_mad_legacy_u16 v3, v6, v7, v3
301 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v1, 24, v1
302 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v2, 24, v2
303 ; GFX9-DL-NEXT: v_mad_legacy_u16 v3, v8, v9, v3
304 ; GFX9-DL-NEXT: v_mad_legacy_u16 v1, v1, v2, v3
305 ; GFX9-DL-NEXT: global_store_short v0, v1, s[2:3]
306 ; GFX9-DL-NEXT: s_endpgm
308 ; GFX10-DL-LABEL: udot4_acc16:
309 ; GFX10-DL: ; %bb.0: ; %entry
310 ; GFX10-DL-NEXT: s_clause 0x1
311 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
312 ; GFX10-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
313 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
314 ; GFX10-DL-NEXT: v_mov_b32_e32 v8, 0xff
315 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
316 ; GFX10-DL-NEXT: s_clause 0x1
317 ; GFX10-DL-NEXT: global_load_dword v1, v0, s[4:5]
318 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[6:7]
319 ; GFX10-DL-NEXT: v_mov_b32_e32 v0, 0
320 ; GFX10-DL-NEXT: global_load_ushort v3, v0, s[2:3]
321 ; GFX10-DL-NEXT: s_waitcnt vmcnt(2)
322 ; GFX10-DL-NEXT: v_and_b32_e32 v4, 0xff, v1
323 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v5, 8, v1
324 ; GFX10-DL-NEXT: s_waitcnt vmcnt(1)
325 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v6, 8, v2
326 ; GFX10-DL-NEXT: v_and_b32_e32 v7, 0xff, v2
327 ; GFX10-DL-NEXT: v_and_b32_e32 v5, 0xff, v5
328 ; GFX10-DL-NEXT: v_and_b32_e32 v6, 0xff, v6
329 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
330 ; GFX10-DL-NEXT: v_mad_u16 v3, v4, v7, v3
331 ; GFX10-DL-NEXT: v_and_b32_sdwa v4, v1, v8 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 s…
332 ; GFX10-DL-NEXT: v_and_b32_sdwa v7, v2, v8 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 s…
333 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v1, 24, v1
334 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v2, 24, v2
335 ; GFX10-DL-NEXT: v_mad_u16 v3, v5, v6, v3
336 ; GFX10-DL-NEXT: v_mad_u16 v3, v4, v7, v3
337 ; GFX10-DL-NEXT: v_mad_u16 v1, v1, v2, v3
338 ; GFX10-DL-NEXT: global_store_short v0, v1, s[2:3]
339 ; GFX10-DL-NEXT: s_endpgm
477 ; GFX9-DL-LABEL: udot4_acc8:
478 ; GFX9-DL: ; %bb.0: ; %entry
479 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
480 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
481 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
482 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
483 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
484 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
485 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
486 ; GFX9-DL-NEXT: global_load_ubyte v3, v0, s[2:3]
487 ; GFX9-DL-NEXT: s_waitcnt vmcnt(2)
488 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v4, 16, v1
489 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v6, 8, v1
490 ; GFX9-DL-NEXT: s_waitcnt vmcnt(1)
491 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v7, 8, v2
492 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v8, 24, v1
493 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
494 ; GFX9-DL-NEXT: v_mad_legacy_u16 v1, v1, v2, v3
495 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v5, 16, v2
496 ; GFX9-DL-NEXT: v_mad_legacy_u16 v1, v6, v7, v1
497 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v9, 24, v2
498 ; GFX9-DL-NEXT: v_mad_legacy_u16 v1, v4, v5, v1
499 ; GFX9-DL-NEXT: v_mad_legacy_u16 v1, v8, v9, v1
500 ; GFX9-DL-NEXT: global_store_byte v0, v1, s[2:3]
501 ; GFX9-DL-NEXT: s_endpgm
503 ; GFX10-DL-LABEL: udot4_acc8:
504 ; GFX10-DL: ; %bb.0: ; %entry
505 ; GFX10-DL-NEXT: s_clause 0x1
506 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
507 ; GFX10-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
508 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
509 ; GFX10-DL-NEXT: v_mov_b32_e32 v1, 0
510 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
511 ; GFX10-DL-NEXT: s_clause 0x1
512 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[4:5]
513 ; GFX10-DL-NEXT: global_load_dword v3, v0, s[6:7]
514 ; GFX10-DL-NEXT: global_load_ubyte v4, v1, s[2:3]
515 ; GFX10-DL-NEXT: s_waitcnt vmcnt(2)
516 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v0, 8, v2
517 ; GFX10-DL-NEXT: s_waitcnt vmcnt(1)
518 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v5, 8, v3
519 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
520 ; GFX10-DL-NEXT: v_mad_u16 v4, v2, v3, v4
521 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v6, 16, v2
522 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v7, 16, v3
523 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v2, 24, v2
524 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v3, 24, v3
525 ; GFX10-DL-NEXT: v_mad_u16 v0, v0, v5, v4
526 ; GFX10-DL-NEXT: v_mad_u16 v0, v6, v7, v0
527 ; GFX10-DL-NEXT: v_mad_u16 v0, v2, v3, v0
528 ; GFX10-DL-NEXT: global_store_byte v1, v0, s[2:3]
529 ; GFX10-DL-NEXT: s_endpgm
642 ; GFX9-DL-LABEL: udot2_8:
643 ; GFX9-DL: ; %bb.0: ; %entry
644 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
645 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
646 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
647 ; GFX9-DL-NEXT: v_mov_b32_e32 v1, 0
648 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
649 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[4:5]
650 ; GFX9-DL-NEXT: global_load_dword v3, v0, s[6:7]
651 ; GFX9-DL-NEXT: global_load_ubyte v4, v1, s[2:3]
652 ; GFX9-DL-NEXT: s_waitcnt vmcnt(2)
653 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v0, 8, v2
654 ; GFX9-DL-NEXT: s_waitcnt vmcnt(1)
655 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v5, 8, v3
656 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
657 ; GFX9-DL-NEXT: v_mad_legacy_u16 v2, v2, v3, v4
658 ; GFX9-DL-NEXT: v_mad_legacy_u16 v0, v0, v5, v2
659 ; GFX9-DL-NEXT: global_store_byte v1, v0, s[2:3]
660 ; GFX9-DL-NEXT: s_endpgm
662 ; GFX10-DL-LABEL: udot2_8:
663 ; GFX10-DL: ; %bb.0: ; %entry
664 ; GFX10-DL-NEXT: s_clause 0x1
665 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
666 ; GFX10-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
667 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
668 ; GFX10-DL-NEXT: v_mov_b32_e32 v1, 0
669 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
670 ; GFX10-DL-NEXT: s_clause 0x1
671 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[4:5]
672 ; GFX10-DL-NEXT: global_load_dword v3, v0, s[6:7]
673 ; GFX10-DL-NEXT: global_load_ubyte v4, v1, s[2:3]
674 ; GFX10-DL-NEXT: s_waitcnt vmcnt(2)
675 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v0, 8, v2
676 ; GFX10-DL-NEXT: s_waitcnt vmcnt(1)
677 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v5, 8, v3
678 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
679 ; GFX10-DL-NEXT: v_mad_u16 v2, v2, v3, v4
680 ; GFX10-DL-NEXT: v_mad_u16 v0, v0, v5, v2
681 ; GFX10-DL-NEXT: global_store_byte v1, v0, s[2:3]
682 ; GFX10-DL-NEXT: s_endpgm
801 ; GFX9-DL-LABEL: udot4_CommutationInsideMAD:
802 ; GFX9-DL: ; %bb.0: ; %entry
803 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
804 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
805 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
806 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
807 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
808 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
809 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
810 ; GFX9-DL-NEXT: global_load_ubyte v3, v0, s[2:3]
811 ; GFX9-DL-NEXT: s_waitcnt vmcnt(2)
812 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v4, 16, v1
813 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v6, 8, v1
814 ; GFX9-DL-NEXT: s_waitcnt vmcnt(1)
815 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v7, 8, v2
816 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v8, 24, v1
817 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
818 ; GFX9-DL-NEXT: v_mad_legacy_u16 v1, v2, v1, v3
819 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v5, 16, v2
820 ; GFX9-DL-NEXT: v_mad_legacy_u16 v1, v7, v6, v1
821 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v9, 24, v2
822 ; GFX9-DL-NEXT: v_mad_legacy_u16 v1, v5, v4, v1
823 ; GFX9-DL-NEXT: v_mad_legacy_u16 v1, v9, v8, v1
824 ; GFX9-DL-NEXT: global_store_byte v0, v1, s[2:3]
825 ; GFX9-DL-NEXT: s_endpgm
827 ; GFX10-DL-LABEL: udot4_CommutationInsideMAD:
828 ; GFX10-DL: ; %bb.0: ; %entry
829 ; GFX10-DL-NEXT: s_clause 0x1
830 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
831 ; GFX10-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
832 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
833 ; GFX10-DL-NEXT: v_mov_b32_e32 v1, 0
834 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
835 ; GFX10-DL-NEXT: s_clause 0x1
836 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[4:5]
837 ; GFX10-DL-NEXT: global_load_dword v3, v0, s[6:7]
838 ; GFX10-DL-NEXT: global_load_ubyte v4, v1, s[2:3]
839 ; GFX10-DL-NEXT: s_waitcnt vmcnt(2)
840 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v0, 8, v2
841 ; GFX10-DL-NEXT: s_waitcnt vmcnt(1)
842 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v5, 8, v3
843 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
844 ; GFX10-DL-NEXT: v_mad_u16 v4, v3, v2, v4
845 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v6, 16, v2
846 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v7, 16, v3
847 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v2, 24, v2
848 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v3, 24, v3
849 ; GFX10-DL-NEXT: v_mad_u16 v0, v5, v0, v4
850 ; GFX10-DL-NEXT: v_mad_u16 v0, v7, v6, v0
851 ; GFX10-DL-NEXT: v_mad_u16 v0, v3, v2, v0
852 ; GFX10-DL-NEXT: global_store_byte v1, v0, s[2:3]
853 ; GFX10-DL-NEXT: s_endpgm
984 ; GFX9-DL-LABEL: udot4_CommutationAccrossMADs:
985 ; GFX9-DL: ; %bb.0: ; %entry
986 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
987 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
988 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
989 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
990 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
991 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
992 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
993 ; GFX9-DL-NEXT: global_load_ubyte v3, v0, s[2:3]
994 ; GFX9-DL-NEXT: s_waitcnt vmcnt(2)
995 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v6, 8, v1
996 ; GFX9-DL-NEXT: s_waitcnt vmcnt(1)
997 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v7, 8, v2
998 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v4, 16, v1
999 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
1000 ; GFX9-DL-NEXT: v_mad_legacy_u16 v3, v7, v6, v3
1001 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v5, 16, v2
1002 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v8, 24, v1
1003 ; GFX9-DL-NEXT: v_mad_legacy_u16 v1, v2, v1, v3
1004 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v9, 24, v2
1005 ; GFX9-DL-NEXT: v_mad_legacy_u16 v1, v5, v4, v1
1006 ; GFX9-DL-NEXT: v_mad_legacy_u16 v1, v9, v8, v1
1007 ; GFX9-DL-NEXT: global_store_byte v0, v1, s[2:3]
1008 ; GFX9-DL-NEXT: s_endpgm
1010 ; GFX10-DL-LABEL: udot4_CommutationAccrossMADs:
1011 ; GFX10-DL: ; %bb.0: ; %entry
1012 ; GFX10-DL-NEXT: s_clause 0x1
1013 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1014 ; GFX10-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
1015 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
1016 ; GFX10-DL-NEXT: v_mov_b32_e32 v1, 0
1017 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
1018 ; GFX10-DL-NEXT: s_clause 0x1
1019 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[4:5]
1020 ; GFX10-DL-NEXT: global_load_dword v3, v0, s[6:7]
1021 ; GFX10-DL-NEXT: global_load_ubyte v4, v1, s[2:3]
1022 ; GFX10-DL-NEXT: s_waitcnt vmcnt(2)
1023 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v0, 8, v2
1024 ; GFX10-DL-NEXT: s_waitcnt vmcnt(1)
1025 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v5, 8, v3
1026 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
1027 ; GFX10-DL-NEXT: v_mad_u16 v0, v5, v0, v4
1028 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v4, 16, v2
1029 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v5, 16, v3
1030 ; GFX10-DL-NEXT: v_mad_u16 v0, v3, v2, v0
1031 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v2, 24, v2
1032 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v3, 24, v3
1033 ; GFX10-DL-NEXT: v_mad_u16 v0, v5, v4, v0
1034 ; GFX10-DL-NEXT: v_mad_u16 v0, v3, v2, v0
1035 ; GFX10-DL-NEXT: global_store_byte v1, v0, s[2:3]
1036 ; GFX10-DL-NEXT: s_endpgm
1169 ; GFX9-DL-LABEL: udot4_multiuse_mul1:
1170 ; GFX9-DL: ; %bb.0: ; %entry
1171 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1172 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
1173 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
1174 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
1175 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
1176 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
1177 ; GFX9-DL-NEXT: s_load_dword s0, s[2:3], 0x0
1178 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
1179 ; GFX9-DL-NEXT: s_waitcnt vmcnt(1)
1180 ; GFX9-DL-NEXT: v_and_b32_e32 v3, 0xff, v1
1181 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
1182 ; GFX9-DL-NEXT: v_and_b32_e32 v4, 0xff, v2
1183 ; GFX9-DL-NEXT: v_mul_u32_u24_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_…
1184 ; GFX9-DL-NEXT: v_mul_u32_u24_sdwa v6, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_…
1185 ; GFX9-DL-NEXT: v_mul_u32_u24_sdwa v1, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_…
1186 ; GFX9-DL-NEXT: v_mul_u32_u24_e32 v2, v3, v4
1187 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
1188 ; GFX9-DL-NEXT: v_mad_u32_u24 v3, v3, v4, s0
1189 ; GFX9-DL-NEXT: v_add3_u32 v2, v5, v3, v2
1190 ; GFX9-DL-NEXT: v_add3_u32 v1, v2, v6, v1
1191 ; GFX9-DL-NEXT: global_store_dword v0, v1, s[2:3]
1192 ; GFX9-DL-NEXT: s_endpgm
1194 ; GFX10-DL-LABEL: udot4_multiuse_mul1:
1195 ; GFX10-DL: ; %bb.0: ; %entry
1196 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1197 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
1198 ; GFX10-DL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
1199 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
1200 ; GFX10-DL-NEXT: s_clause 0x1
1201 ; GFX10-DL-NEXT: global_load_dword v1, v0, s[4:5]
1202 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[6:7]
1203 ; GFX10-DL-NEXT: s_load_dword s2, s[0:1], 0x0
1204 ; GFX10-DL-NEXT: s_waitcnt vmcnt(1)
1205 ; GFX10-DL-NEXT: v_and_b32_e32 v0, 0xff, v1
1206 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
1207 ; GFX10-DL-NEXT: v_and_b32_e32 v3, 0xff, v2
1208 ; GFX10-DL-NEXT: v_mul_u32_u24_sdwa v4, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE…
1209 ; GFX10-DL-NEXT: v_mul_u32_u24_e32 v5, v0, v3
1210 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
1211 ; GFX10-DL-NEXT: v_mad_u32_u24 v0, v0, v3, s2
1212 ; GFX10-DL-NEXT: v_mul_u32_u24_sdwa v3, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE…
1213 ; GFX10-DL-NEXT: v_mul_u32_u24_sdwa v1, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE…
1214 ; GFX10-DL-NEXT: v_mov_b32_e32 v2, 0
1215 ; GFX10-DL-NEXT: v_add3_u32 v0, v4, v0, v5
1216 ; GFX10-DL-NEXT: v_add3_u32 v0, v0, v3, v1
1217 ; GFX10-DL-NEXT: global_store_dword v2, v0, s[0:1]
1218 ; GFX10-DL-NEXT: s_endpgm
1362 ; GFX9-DL-LABEL: udot4_multiuse_add1:
1363 ; GFX9-DL: ; %bb.0: ; %entry
1364 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1365 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
1366 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
1367 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
1368 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
1369 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
1370 ; GFX9-DL-NEXT: s_load_dword s0, s[2:3], 0x0
1371 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
1372 ; GFX9-DL-NEXT: s_waitcnt vmcnt(1)
1373 ; GFX9-DL-NEXT: v_bfe_u32 v4, v1, 8, 8
1374 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
1375 ; GFX9-DL-NEXT: v_bfe_u32 v5, v2, 8, 8
1376 ; GFX9-DL-NEXT: v_mul_u32_u24_sdwa v3, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_…
1377 ; GFX9-DL-NEXT: v_mul_u32_u24_sdwa v6, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_…
1378 ; GFX9-DL-NEXT: v_mul_u32_u24_sdwa v1, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_…
1379 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
1380 ; GFX9-DL-NEXT: v_mad_u32_u24 v2, v4, v5, s0
1381 ; GFX9-DL-NEXT: v_add_u32_e32 v4, s0, v2
1382 ; GFX9-DL-NEXT: v_add3_u32 v2, v2, v3, v6
1383 ; GFX9-DL-NEXT: v_add3_u32 v1, v2, v1, v4
1384 ; GFX9-DL-NEXT: global_store_dword v0, v1, s[2:3]
1385 ; GFX9-DL-NEXT: s_endpgm
1387 ; GFX10-DL-LABEL: udot4_multiuse_add1:
1388 ; GFX10-DL: ; %bb.0: ; %entry
1389 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1390 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
1391 ; GFX10-DL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
1392 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
1393 ; GFX10-DL-NEXT: s_clause 0x1
1394 ; GFX10-DL-NEXT: global_load_dword v1, v0, s[4:5]
1395 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[6:7]
1396 ; GFX10-DL-NEXT: s_load_dword s2, s[0:1], 0x0
1397 ; GFX10-DL-NEXT: s_waitcnt vmcnt(1)
1398 ; GFX10-DL-NEXT: v_bfe_u32 v0, v1, 8, 8
1399 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
1400 ; GFX10-DL-NEXT: v_bfe_u32 v3, v2, 8, 8
1401 ; GFX10-DL-NEXT: v_mul_u32_u24_sdwa v4, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE…
1402 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
1403 ; GFX10-DL-NEXT: v_mad_u32_u24 v0, v0, v3, s2
1404 ; GFX10-DL-NEXT: v_mul_u32_u24_sdwa v3, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE…
1405 ; GFX10-DL-NEXT: v_mul_u32_u24_sdwa v1, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE…
1406 ; GFX10-DL-NEXT: v_add_nc_u32_e32 v2, s2, v0
1407 ; GFX10-DL-NEXT: v_add3_u32 v0, v0, v4, v3
1408 ; GFX10-DL-NEXT: v_mov_b32_e32 v3, 0
1409 ; GFX10-DL-NEXT: v_add3_u32 v0, v0, v1, v2
1410 ; GFX10-DL-NEXT: global_store_dword v3, v0, s[0:1]
1411 ; GFX10-DL-NEXT: s_endpgm
1562 ; GFX9-DL-LABEL: notdot4_mixedtypes:
1563 ; GFX9-DL: ; %bb.0: ; %entry
1564 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1565 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
1566 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
1567 ; GFX9-DL-NEXT: s_movk_i32 s0, 0xff
1568 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
1569 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
1570 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
1571 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
1572 ; GFX9-DL-NEXT: global_load_ushort v3, v0, s[2:3]
1573 ; GFX9-DL-NEXT: s_waitcnt vmcnt(2)
1574 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v6, 8, v1
1575 ; GFX9-DL-NEXT: s_waitcnt vmcnt(1)
1576 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v7, 8, v2
1577 ; GFX9-DL-NEXT: v_and_b32_e32 v6, 0xff, v6
1578 ; GFX9-DL-NEXT: v_and_b32_e32 v7, 0xff, v7
1579 ; GFX9-DL-NEXT: v_bfe_i32 v4, v1, 0, 8
1580 ; GFX9-DL-NEXT: v_bfe_i32 v5, v2, 0, 8
1581 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
1582 ; GFX9-DL-NEXT: v_mad_legacy_u16 v3, v6, v7, v3
1583 ; GFX9-DL-NEXT: v_and_b32_sdwa v8, v1, s0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 sr…
1584 ; GFX9-DL-NEXT: v_and_b32_sdwa v9, v2, s0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 sr…
1585 ; GFX9-DL-NEXT: v_mad_legacy_u16 v3, v4, v5, v3
1586 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v1, 24, v1
1587 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v2, 24, v2
1588 ; GFX9-DL-NEXT: v_mad_legacy_u16 v3, v8, v9, v3
1589 ; GFX9-DL-NEXT: v_mad_legacy_u16 v1, v1, v2, v3
1590 ; GFX9-DL-NEXT: global_store_short v0, v1, s[2:3]
1591 ; GFX9-DL-NEXT: s_endpgm
1593 ; GFX10-DL-LABEL: notdot4_mixedtypes:
1594 ; GFX10-DL: ; %bb.0: ; %entry
1595 ; GFX10-DL-NEXT: s_clause 0x1
1596 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1597 ; GFX10-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
1598 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
1599 ; GFX10-DL-NEXT: v_mov_b32_e32 v7, 0xff
1600 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
1601 ; GFX10-DL-NEXT: s_clause 0x1
1602 ; GFX10-DL-NEXT: global_load_dword v1, v0, s[4:5]
1603 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[6:7]
1604 ; GFX10-DL-NEXT: v_mov_b32_e32 v0, 0
1605 ; GFX10-DL-NEXT: global_load_ushort v3, v0, s[2:3]
1606 ; GFX10-DL-NEXT: s_waitcnt vmcnt(2)
1607 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v4, 8, v1
1608 ; GFX10-DL-NEXT: s_waitcnt vmcnt(1)
1609 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v5, 8, v2
1610 ; GFX10-DL-NEXT: v_bfe_i32 v6, v1, 0, 8
1611 ; GFX10-DL-NEXT: v_bfe_i32 v8, v2, 0, 8
1612 ; GFX10-DL-NEXT: v_and_b32_e32 v4, 0xff, v4
1613 ; GFX10-DL-NEXT: v_and_b32_e32 v5, 0xff, v5
1614 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
1615 ; GFX10-DL-NEXT: v_mad_u16 v3, v4, v5, v3
1616 ; GFX10-DL-NEXT: v_and_b32_sdwa v4, v1, v7 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 s…
1617 ; GFX10-DL-NEXT: v_and_b32_sdwa v5, v2, v7 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 s…
1618 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v1, 24, v1
1619 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v2, 24, v2
1620 ; GFX10-DL-NEXT: v_mad_u16 v3, v6, v8, v3
1621 ; GFX10-DL-NEXT: v_mad_u16 v3, v4, v5, v3
1622 ; GFX10-DL-NEXT: v_mad_u16 v1, v1, v2, v3
1623 ; GFX10-DL-NEXT: global_store_short v0, v1, s[2:3]
1624 ; GFX10-DL-NEXT: s_endpgm
1760 ; GFX9-DL-LABEL: udot4_acc32_vecMul:
1761 ; GFX9-DL: ; %bb.0: ; %entry
1762 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1763 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
1764 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
1765 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
1766 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
1767 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
1768 ; GFX9-DL-NEXT: s_load_dword s0, s[2:3], 0x0
1769 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
1770 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
1771 ; GFX9-DL-NEXT: v_mul_u32_u24_sdwa v3, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_…
1772 ; GFX9-DL-NEXT: v_mul_u32_u24_sdwa v4, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_…
1773 ; GFX9-DL-NEXT: v_mul_u32_u24_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_…
1774 ; GFX9-DL-NEXT: v_mul_u32_u24_sdwa v1, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_…
1775 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
1776 ; GFX9-DL-NEXT: v_add3_u32 v2, v3, s0, v4
1777 ; GFX9-DL-NEXT: v_add3_u32 v1, v2, v5, v1
1778 ; GFX9-DL-NEXT: global_store_dword v0, v1, s[2:3]
1779 ; GFX9-DL-NEXT: s_endpgm
1781 ; GFX10-DL-LABEL: udot4_acc32_vecMul:
1782 ; GFX10-DL: ; %bb.0: ; %entry
1783 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1784 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
1785 ; GFX10-DL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
1786 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
1787 ; GFX10-DL-NEXT: s_clause 0x1
1788 ; GFX10-DL-NEXT: global_load_dword v1, v0, s[4:5]
1789 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[6:7]
1790 ; GFX10-DL-NEXT: v_mov_b32_e32 v0, 0xffff
1791 ; GFX10-DL-NEXT: s_load_dword s2, s[0:1], 0x0
1792 ; GFX10-DL-NEXT: s_waitcnt vmcnt(1)
1793 ; GFX10-DL-NEXT: v_and_b32_sdwa v3, v0, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD sr…
1794 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
1795 ; GFX10-DL-NEXT: v_and_b32_sdwa v0, v0, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD sr…
1796 ; GFX10-DL-NEXT: v_mul_u32_u24_sdwa v4, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE…
1797 ; GFX10-DL-NEXT: v_mul_u32_u24_e32 v0, v3, v0
1798 ; GFX10-DL-NEXT: v_mul_u32_u24_sdwa v3, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE…
1799 ; GFX10-DL-NEXT: v_mul_u32_u24_sdwa v1, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE…
1800 ; GFX10-DL-NEXT: v_mov_b32_e32 v2, 0
1801 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
1802 ; GFX10-DL-NEXT: v_add3_u32 v0, v4, s2, v0
1803 ; GFX10-DL-NEXT: v_add3_u32 v0, v0, v3, v1
1804 ; GFX10-DL-NEXT: global_store_dword v2, v0, s[0:1]
1805 ; GFX10-DL-NEXT: s_endpgm
1952 ; GFX9-DL-LABEL: udot4_acc16_vecMul:
1953 ; GFX9-DL: ; %bb.0: ; %entry
1954 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1955 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
1956 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
1957 ; GFX9-DL-NEXT: s_movk_i32 s0, 0xff
1958 ; GFX9-DL-NEXT: v_mov_b32_e32 v4, 0xffff
1959 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
1960 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
1961 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
1962 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
1963 ; GFX9-DL-NEXT: global_load_ushort v3, v0, s[2:3]
1964 ; GFX9-DL-NEXT: s_waitcnt vmcnt(2)
1965 ; GFX9-DL-NEXT: v_lshrrev_b16_e32 v5, 8, v1
1966 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v6, 24, v1
1967 ; GFX9-DL-NEXT: s_waitcnt vmcnt(1)
1968 ; GFX9-DL-NEXT: v_lshrrev_b16_e32 v7, 8, v2
1969 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v8, 24, v2
1970 ; GFX9-DL-NEXT: v_and_b32_sdwa v9, v1, s0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 sr…
1971 ; GFX9-DL-NEXT: v_and_b32_sdwa v10, v2, s0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 s…
1972 ; GFX9-DL-NEXT: v_and_b32_sdwa v2, v4, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src…
1973 ; GFX9-DL-NEXT: v_and_b32_sdwa v1, v4, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src…
1974 ; GFX9-DL-NEXT: v_lshl_or_b32 v2, v7, 16, v2
1975 ; GFX9-DL-NEXT: v_lshl_or_b32 v1, v5, 16, v1
1976 ; GFX9-DL-NEXT: v_and_b32_e32 v4, 0xffff, v10
1977 ; GFX9-DL-NEXT: v_and_b32_e32 v9, 0xffff, v9
1978 ; GFX9-DL-NEXT: v_pk_mul_lo_u16 v1, v1, v2
1979 ; GFX9-DL-NEXT: v_lshl_or_b32 v4, v8, 16, v4
1980 ; GFX9-DL-NEXT: v_lshl_or_b32 v5, v6, 16, v9
1981 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
1982 ; GFX9-DL-NEXT: v_add_u16_e32 v3, v1, v3
1983 ; GFX9-DL-NEXT: v_pk_mul_lo_u16 v2, v5, v4
1984 ; GFX9-DL-NEXT: v_add_u16_sdwa v1, v3, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src…
1985 ; GFX9-DL-NEXT: v_add_u16_e32 v1, v1, v2
1986 ; GFX9-DL-NEXT: v_add_u16_sdwa v1, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src…
1987 ; GFX9-DL-NEXT: global_store_short v0, v1, s[2:3]
1988 ; GFX9-DL-NEXT: s_endpgm
1990 ; GFX10-DL-LABEL: udot4_acc16_vecMul:
1991 ; GFX10-DL: ; %bb.0: ; %entry
1992 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1993 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
1994 ; GFX10-DL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
1995 ; GFX10-DL-NEXT: v_mov_b32_e32 v4, 0xffff
1996 ; GFX10-DL-NEXT: v_mov_b32_e32 v5, 0xff
1997 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
1998 ; GFX10-DL-NEXT: s_clause 0x1
1999 ; GFX10-DL-NEXT: global_load_dword v1, v0, s[4:5]
2000 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[6:7]
2001 ; GFX10-DL-NEXT: v_mov_b32_e32 v0, 0
2002 ; GFX10-DL-NEXT: global_load_ushort v3, v0, s[0:1]
2003 ; GFX10-DL-NEXT: s_waitcnt vmcnt(2)
2004 ; GFX10-DL-NEXT: v_lshrrev_b16 v6, 8, v1
2005 ; GFX10-DL-NEXT: s_waitcnt vmcnt(1)
2006 ; GFX10-DL-NEXT: v_lshrrev_b16 v7, 8, v2
2007 ; GFX10-DL-NEXT: v_and_b32_sdwa v8, v4, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD sr…
2008 ; GFX10-DL-NEXT: v_and_b32_sdwa v4, v4, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD sr…
2009 ; GFX10-DL-NEXT: v_and_b32_sdwa v9, v1, v5 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 s…
2010 ; GFX10-DL-NEXT: v_and_b32_sdwa v5, v2, v5 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 s…
2011 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v1, 24, v1
2012 ; GFX10-DL-NEXT: v_lshl_or_b32 v7, v7, 16, v8
2013 ; GFX10-DL-NEXT: v_lshl_or_b32 v4, v6, 16, v4
2014 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v2, 24, v2
2015 ; GFX10-DL-NEXT: v_and_b32_e32 v5, 0xffff, v5
2016 ; GFX10-DL-NEXT: v_and_b32_e32 v6, 0xffff, v9
2017 ; GFX10-DL-NEXT: v_pk_mul_lo_u16 v4, v4, v7
2018 ; GFX10-DL-NEXT: v_lshl_or_b32 v2, v2, 16, v5
2019 ; GFX10-DL-NEXT: v_lshl_or_b32 v1, v1, 16, v6
2020 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v5, 16, v4
2021 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
2022 ; GFX10-DL-NEXT: v_add_nc_u16 v3, v4, v3
2023 ; GFX10-DL-NEXT: v_pk_mul_lo_u16 v1, v1, v2
2024 ; GFX10-DL-NEXT: v_add_nc_u16 v2, v3, v5
2025 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v3, 16, v1
2026 ; GFX10-DL-NEXT: v_add_nc_u16 v1, v2, v1
2027 ; GFX10-DL-NEXT: v_add_nc_u16 v1, v1, v3
2028 ; GFX10-DL-NEXT: global_store_short v0, v1, s[0:1]
2029 ; GFX10-DL-NEXT: s_endpgm
2161 ; GFX9-DL-LABEL: udot4_acc8_vecMul:
2162 ; GFX9-DL: ; %bb.0: ; %entry
2163 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
2164 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
2165 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
2166 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
2167 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
2168 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
2169 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
2170 ; GFX9-DL-NEXT: global_load_ubyte v3, v0, s[2:3]
2171 ; GFX9-DL-NEXT: s_waitcnt vmcnt(2)
2172 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v4, 16, v1
2173 ; GFX9-DL-NEXT: s_waitcnt vmcnt(1)
2174 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v5, 16, v2
2175 ; GFX9-DL-NEXT: v_mul_lo_u16_sdwa v6, v1, v2 dst_sel:BYTE_1 dst_unused:UNUSED_PAD src0_sel:BYTE_…
2176 ; GFX9-DL-NEXT: v_mul_lo_u16_e32 v8, v4, v5
2177 ; GFX9-DL-NEXT: v_or_b32_sdwa v6, v8, v6 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src…
2178 ; GFX9-DL-NEXT: v_mul_lo_u16_sdwa v7, v1, v2 dst_sel:BYTE_1 dst_unused:UNUSED_PAD src0_sel:BYTE_…
2179 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v8, 16, v6
2180 ; GFX9-DL-NEXT: v_or_b32_e32 v7, v7, v8
2181 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v7, 8, v7
2182 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
2183 ; GFX9-DL-NEXT: v_mad_legacy_u16 v1, v1, v2, v3
2184 ; GFX9-DL-NEXT: v_add_u16_e32 v1, v1, v7
2185 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v6, 8, v6
2186 ; GFX9-DL-NEXT: v_mad_legacy_u16 v1, v4, v5, v1
2187 ; GFX9-DL-NEXT: v_add_u16_e32 v1, v1, v6
2188 ; GFX9-DL-NEXT: global_store_byte v0, v1, s[2:3]
2189 ; GFX9-DL-NEXT: s_endpgm
2191 ; GFX10-DL-LABEL: udot4_acc8_vecMul:
2192 ; GFX10-DL: ; %bb.0: ; %entry
2193 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
2194 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
2195 ; GFX10-DL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
2196 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
2197 ; GFX10-DL-NEXT: s_clause 0x1
2198 ; GFX10-DL-NEXT: global_load_dword v1, v0, s[4:5]
2199 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[6:7]
2200 ; GFX10-DL-NEXT: v_mov_b32_e32 v0, 0
2201 ; GFX10-DL-NEXT: global_load_ubyte v3, v0, s[0:1]
2202 ; GFX10-DL-NEXT: s_waitcnt vmcnt(2)
2203 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v4, 24, v1
2204 ; GFX10-DL-NEXT: s_waitcnt vmcnt(1)
2205 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v5, 24, v2
2206 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v6, 16, v1
2207 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v7, 16, v2
2208 ; GFX10-DL-NEXT: v_lshrrev_b16 v8, 8, v2
2209 ; GFX10-DL-NEXT: v_mul_lo_u16 v4, v4, v5
2210 ; GFX10-DL-NEXT: v_lshrrev_b16 v5, 8, v1
2211 ; GFX10-DL-NEXT: v_mul_lo_u16 v9, v6, v7
2212 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
2213 ; GFX10-DL-NEXT: v_mad_u16 v1, v1, v2, v3
2214 ; GFX10-DL-NEXT: v_lshlrev_b16 v4, 8, v4
2215 ; GFX10-DL-NEXT: v_mul_lo_u16 v5, v5, v8
2216 ; GFX10-DL-NEXT: v_or_b32_sdwa v4, v9, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 sr…
2217 ; GFX10-DL-NEXT: v_lshlrev_b16 v5, 8, v5
2218 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v8, 16, v4
2219 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v2, 8, v4
2220 ; GFX10-DL-NEXT: v_or_b32_sdwa v5, v5, v8 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_0 sr…
2221 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v5, 8, v5
2222 ; GFX10-DL-NEXT: v_add_nc_u16 v1, v1, v5
2223 ; GFX10-DL-NEXT: v_mad_u16 v1, v6, v7, v1
2224 ; GFX10-DL-NEXT: v_add_nc_u16 v1, v1, v2
2225 ; GFX10-DL-NEXT: global_store_byte v0, v1, s[0:1]
2226 ; GFX10-DL-NEXT: s_endpgm