Lines Matching refs:DL

5 …llc -mtriple=amdgcn -mcpu=gfx906 -verify-machineinstrs < %s | FileCheck --check-prefixes=GFX9-DL %s
6 …c -mtriple=amdgcn -mcpu=gfx1011 -verify-machineinstrs < %s | FileCheck --check-prefixes=GFX10-DL %s
7 …c -mtriple=amdgcn -mcpu=gfx1012 -verify-machineinstrs < %s | FileCheck --check-prefixes=GFX10-DL %s
88 ; GFX9-DL-LABEL: udot2:
89 ; GFX9-DL: ; %bb.0: ; %entry
90 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
91 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
92 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
93 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
94 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
95 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
96 ; GFX9-DL-NEXT: s_load_dword s0, s[2:3], 0x0
97 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
98 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
99 ; GFX9-DL-NEXT: v_dot2_u32_u16 v1, v2, v1, s0
100 ; GFX9-DL-NEXT: global_store_dword v0, v1, s[2:3]
101 ; GFX9-DL-NEXT: s_endpgm
103 ; GFX10-DL-LABEL: udot2:
104 ; GFX10-DL: ; %bb.0: ; %entry
105 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
106 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
107 ; GFX10-DL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
108 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
109 ; GFX10-DL-NEXT: s_clause 0x1
110 ; GFX10-DL-NEXT: global_load_dword v1, v0, s[4:5]
111 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[6:7]
112 ; GFX10-DL-NEXT: v_mov_b32_e32 v0, 0
113 ; GFX10-DL-NEXT: s_load_dword s2, s[0:1], 0x0
114 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
115 ; GFX10-DL-NEXT: v_dot2_u32_u16 v1, v2, v1, s2
116 ; GFX10-DL-NEXT: global_store_dword v0, v1, s[0:1]
117 ; GFX10-DL-NEXT: s_endpgm
225 ; GFX9-DL-LABEL: udot2_MulMul:
226 ; GFX9-DL: ; %bb.0: ; %entry
227 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
228 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
229 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
230 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
231 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
232 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
233 ; GFX9-DL-NEXT: s_load_dword s0, s[2:3], 0x0
234 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
235 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
236 ; GFX9-DL-NEXT: v_mul_u32_u24_sdwa v3, v2, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_…
237 ; GFX9-DL-NEXT: v_mul_u32_u24_sdwa v1, v2, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_…
238 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
239 ; GFX9-DL-NEXT: v_add3_u32 v1, v1, v3, s0
240 ; GFX9-DL-NEXT: global_store_dword v0, v1, s[2:3]
241 ; GFX9-DL-NEXT: s_endpgm
243 ; GFX10-DL-LABEL: udot2_MulMul:
244 ; GFX10-DL: ; %bb.0: ; %entry
245 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
246 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
247 ; GFX10-DL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
248 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
249 ; GFX10-DL-NEXT: s_clause 0x1
250 ; GFX10-DL-NEXT: global_load_dword v1, v0, s[4:5]
251 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[6:7]
252 ; GFX10-DL-NEXT: s_load_dword s2, s[0:1], 0x0
253 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
254 ; GFX10-DL-NEXT: v_mul_u32_u24_sdwa v0, v2, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD…
255 ; GFX10-DL-NEXT: v_mul_u32_u24_sdwa v1, v2, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD…
256 ; GFX10-DL-NEXT: v_mov_b32_e32 v2, 0
257 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
258 ; GFX10-DL-NEXT: v_add3_u32 v0, v1, v0, s2
259 ; GFX10-DL-NEXT: global_store_dword v2, v0, s[0:1]
260 ; GFX10-DL-NEXT: s_endpgm
364 ; GFX9-DL-LABEL: idot2:
365 ; GFX9-DL: ; %bb.0: ; %entry
366 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
367 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
368 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
369 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
370 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
371 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
372 ; GFX9-DL-NEXT: s_load_dword s0, s[2:3], 0x0
373 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
374 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
375 ; GFX9-DL-NEXT: v_dot2_i32_i16 v1, v2, v1, s0
376 ; GFX9-DL-NEXT: global_store_dword v0, v1, s[2:3]
377 ; GFX9-DL-NEXT: s_endpgm
379 ; GFX10-DL-LABEL: idot2:
380 ; GFX10-DL: ; %bb.0: ; %entry
381 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
382 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
383 ; GFX10-DL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
384 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
385 ; GFX10-DL-NEXT: s_clause 0x1
386 ; GFX10-DL-NEXT: global_load_dword v1, v0, s[4:5]
387 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[6:7]
388 ; GFX10-DL-NEXT: v_mov_b32_e32 v0, 0
389 ; GFX10-DL-NEXT: s_load_dword s2, s[0:1], 0x0
390 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
391 ; GFX10-DL-NEXT: v_dot2_i32_i16 v1, v2, v1, s2
392 ; GFX10-DL-NEXT: global_store_dword v0, v1, s[0:1]
393 ; GFX10-DL-NEXT: s_endpgm
498 ; GFX9-DL-LABEL: idot2_MixedTypedMul:
499 ; GFX9-DL: ; %bb.0: ; %entry
500 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
501 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
502 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
503 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
504 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
505 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
506 ; GFX9-DL-NEXT: s_load_dword s0, s[2:3], 0x0
507 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
508 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
509 ; GFX9-DL-NEXT: v_mul_i32_i24_sdwa v3, sext(v2), sext(v1) dst_sel:DWORD dst_unused:UNUSED_PAD sr…
510 ; GFX9-DL-NEXT: v_mul_u32_u24_sdwa v1, v2, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_…
511 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
512 ; GFX9-DL-NEXT: v_add3_u32 v1, v1, s0, v3
513 ; GFX9-DL-NEXT: global_store_dword v0, v1, s[2:3]
514 ; GFX9-DL-NEXT: s_endpgm
516 ; GFX10-DL-LABEL: idot2_MixedTypedMul:
517 ; GFX10-DL: ; %bb.0: ; %entry
518 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
519 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
520 ; GFX10-DL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
521 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
522 ; GFX10-DL-NEXT: s_clause 0x1
523 ; GFX10-DL-NEXT: global_load_dword v1, v0, s[4:5]
524 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[6:7]
525 ; GFX10-DL-NEXT: s_load_dword s2, s[0:1], 0x0
526 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
527 ; GFX10-DL-NEXT: v_mul_i32_i24_sdwa v0, sext(v2), sext(v1) dst_sel:DWORD dst_unused:UNUSED_PAD s…
528 ; GFX10-DL-NEXT: v_mul_u32_u24_sdwa v1, v2, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD…
529 ; GFX10-DL-NEXT: v_mov_b32_e32 v2, 0
530 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
531 ; GFX10-DL-NEXT: v_add3_u32 v0, v1, s2, v0
532 ; GFX10-DL-NEXT: global_store_dword v2, v0, s[0:1]
533 ; GFX10-DL-NEXT: s_endpgm
642 ; GFX9-DL-LABEL: udot2_alt_AddOperands:
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: s_waitcnt lgkmcnt(0)
648 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
649 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
650 ; GFX9-DL-NEXT: s_load_dword s0, s[2:3], 0x0
651 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
652 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
653 ; GFX9-DL-NEXT: v_dot2_u32_u16 v1, v2, v1, s0
654 ; GFX9-DL-NEXT: global_store_dword v0, v1, s[2:3]
655 ; GFX9-DL-NEXT: s_endpgm
657 ; GFX10-DL-LABEL: udot2_alt_AddOperands:
658 ; GFX10-DL: ; %bb.0: ; %entry
659 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
660 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
661 ; GFX10-DL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
662 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
663 ; GFX10-DL-NEXT: s_clause 0x1
664 ; GFX10-DL-NEXT: global_load_dword v1, v0, s[4:5]
665 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[6:7]
666 ; GFX10-DL-NEXT: v_mov_b32_e32 v0, 0
667 ; GFX10-DL-NEXT: s_load_dword s2, s[0:1], 0x0
668 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
669 ; GFX10-DL-NEXT: v_dot2_u32_u16 v1, v2, v1, s2
670 ; GFX10-DL-NEXT: global_store_dword v0, v1, s[0:1]
671 ; GFX10-DL-NEXT: s_endpgm
776 ; GFX9-DL-LABEL: idot2_MixedExt:
777 ; GFX9-DL: ; %bb.0: ; %entry
778 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
779 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
780 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
781 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
782 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
783 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
784 ; GFX9-DL-NEXT: s_load_dword s0, s[2:3], 0x0
785 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
786 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
787 ; GFX9-DL-NEXT: v_mul_i32_i24_sdwa v3, v2, sext(v1) dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel…
788 ; GFX9-DL-NEXT: v_mul_i32_i24_sdwa v1, sext(v2), sext(v1) dst_sel:DWORD dst_unused:UNUSED_PAD sr…
789 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
790 ; GFX9-DL-NEXT: v_add3_u32 v1, v1, s0, v3
791 ; GFX9-DL-NEXT: global_store_dword v0, v1, s[2:3]
792 ; GFX9-DL-NEXT: s_endpgm
794 ; GFX10-DL-LABEL: idot2_MixedExt:
795 ; GFX10-DL: ; %bb.0: ; %entry
796 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
797 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
798 ; GFX10-DL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
799 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
800 ; GFX10-DL-NEXT: s_clause 0x1
801 ; GFX10-DL-NEXT: global_load_dword v1, v0, s[4:5]
802 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[6:7]
803 ; GFX10-DL-NEXT: s_load_dword s2, s[0:1], 0x0
804 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
805 ; GFX10-DL-NEXT: v_mul_i32_i24_sdwa v0, v2, sext(v1) dst_sel:DWORD dst_unused:UNUSED_PAD src0_se…
806 ; GFX10-DL-NEXT: v_mul_i32_i24_sdwa v1, sext(v2), sext(v1) dst_sel:DWORD dst_unused:UNUSED_PAD s…
807 ; GFX10-DL-NEXT: v_mov_b32_e32 v2, 0
808 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
809 ; GFX10-DL-NEXT: v_add3_u32 v0, v1, s2, v0
810 ; GFX10-DL-NEXT: global_store_dword v2, v0, s[0:1]
811 ; GFX10-DL-NEXT: s_endpgm
913 ; GFX9-DL-LABEL: notudot2_SameVec:
914 ; GFX9-DL: ; %bb.0: ; %entry
915 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
916 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
917 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
918 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
919 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
920 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
921 ; GFX9-DL-NEXT: s_load_dword s0, s[2:3], 0x0
922 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
923 ; GFX9-DL-NEXT: s_waitcnt vmcnt(1)
924 ; GFX9-DL-NEXT: v_mul_u32_u24_sdwa v1, v1, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_…
925 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
926 ; GFX9-DL-NEXT: v_mul_u32_u24_sdwa v2, v2, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_…
927 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
928 ; GFX9-DL-NEXT: v_add3_u32 v1, v2, s0, v1
929 ; GFX9-DL-NEXT: global_store_dword v0, v1, s[2:3]
930 ; GFX9-DL-NEXT: s_endpgm
932 ; GFX10-DL-LABEL: notudot2_SameVec:
933 ; GFX10-DL: ; %bb.0: ; %entry
934 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
935 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
936 ; GFX10-DL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
937 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
938 ; GFX10-DL-NEXT: s_clause 0x1
939 ; GFX10-DL-NEXT: global_load_dword v1, v0, s[4:5]
940 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[6:7]
941 ; GFX10-DL-NEXT: s_load_dword s2, s[0:1], 0x0
942 ; GFX10-DL-NEXT: s_waitcnt vmcnt(1)
943 ; GFX10-DL-NEXT: v_mul_u32_u24_sdwa v0, v1, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD…
944 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
945 ; GFX10-DL-NEXT: v_mul_u32_u24_sdwa v1, v2, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD…
946 ; GFX10-DL-NEXT: v_mov_b32_e32 v2, 0
947 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
948 ; GFX10-DL-NEXT: v_add3_u32 v0, v1, s2, v0
949 ; GFX10-DL-NEXT: global_store_dword v2, v0, s[0:1]
950 ; GFX10-DL-NEXT: s_endpgm
1056 ; GFX9-DL-LABEL: udot2_v4i16:
1057 ; GFX9-DL: ; %bb.0: ; %entry
1058 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1059 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
1060 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 3, v0
1061 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
1062 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
1063 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
1064 ; GFX9-DL-NEXT: s_load_dword s0, s[2:3], 0x0
1065 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
1066 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1067 ; GFX9-DL-NEXT: v_dot2_u32_u16 v1, v2, v1, s0
1068 ; GFX9-DL-NEXT: global_store_dword v0, v1, s[2:3]
1069 ; GFX9-DL-NEXT: s_endpgm
1071 ; GFX10-DL-LABEL: udot2_v4i16:
1072 ; GFX10-DL: ; %bb.0: ; %entry
1073 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1074 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 3, v0
1075 ; GFX10-DL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
1076 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
1077 ; GFX10-DL-NEXT: s_clause 0x1
1078 ; GFX10-DL-NEXT: global_load_dword v1, v0, s[4:5]
1079 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[6:7]
1080 ; GFX10-DL-NEXT: v_mov_b32_e32 v0, 0
1081 ; GFX10-DL-NEXT: s_load_dword s2, s[0:1], 0x0
1082 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1083 ; GFX10-DL-NEXT: v_dot2_u32_u16 v1, v2, v1, s2
1084 ; GFX10-DL-NEXT: global_store_dword v0, v1, s[0:1]
1085 ; GFX10-DL-NEXT: s_endpgm
1194 ; GFX9-DL-LABEL: udot2_v4i16_Hi:
1195 ; GFX9-DL: ; %bb.0: ; %entry
1196 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1197 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
1198 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 3, v0
1199 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
1200 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5] offset:4
1201 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7] offset:4
1202 ; GFX9-DL-NEXT: s_load_dword s0, s[2:3], 0x0
1203 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
1204 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1205 ; GFX9-DL-NEXT: v_dot2_u32_u16 v1, v2, v1, s0
1206 ; GFX9-DL-NEXT: global_store_dword v0, v1, s[2:3]
1207 ; GFX9-DL-NEXT: s_endpgm
1209 ; GFX10-DL-LABEL: udot2_v4i16_Hi:
1210 ; GFX10-DL: ; %bb.0: ; %entry
1211 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1212 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 3, v0
1213 ; GFX10-DL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
1214 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
1215 ; GFX10-DL-NEXT: s_clause 0x1
1216 ; GFX10-DL-NEXT: global_load_dword v1, v0, s[4:5] offset:4
1217 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[6:7] offset:4
1218 ; GFX10-DL-NEXT: v_mov_b32_e32 v0, 0
1219 ; GFX10-DL-NEXT: s_load_dword s2, s[0:1], 0x0
1220 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1221 ; GFX10-DL-NEXT: v_dot2_u32_u16 v1, v2, v1, s2
1222 ; GFX10-DL-NEXT: global_store_dword v0, v1, s[0:1]
1223 ; GFX10-DL-NEXT: s_endpgm
1329 ; GFX9-DL-LABEL: notudot2_v4i16_Even:
1330 ; GFX9-DL: ; %bb.0: ; %entry
1331 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1332 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
1333 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v4, 3, v0
1334 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
1335 ; GFX9-DL-NEXT: global_load_dwordx2 v[0:1], v4, s[4:5]
1336 ; GFX9-DL-NEXT: global_load_dwordx2 v[2:3], v4, s[6:7]
1337 ; GFX9-DL-NEXT: s_load_dword s0, s[2:3], 0x0
1338 ; GFX9-DL-NEXT: v_mov_b32_e32 v4, 0
1339 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
1340 ; GFX9-DL-NEXT: v_mul_u32_u24_sdwa v0, v2, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_…
1341 ; GFX9-DL-NEXT: v_mul_u32_u24_sdwa v1, v3, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_…
1342 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
1343 ; GFX9-DL-NEXT: v_add3_u32 v0, v1, s0, v0
1344 ; GFX9-DL-NEXT: global_store_dword v4, v0, s[2:3]
1345 ; GFX9-DL-NEXT: s_endpgm
1347 ; GFX10-DL-LABEL: notudot2_v4i16_Even:
1348 ; GFX10-DL: ; %bb.0: ; %entry
1349 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1350 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v4, 3, v0
1351 ; GFX10-DL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
1352 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
1353 ; GFX10-DL-NEXT: s_clause 0x1
1354 ; GFX10-DL-NEXT: global_load_dwordx2 v[0:1], v4, s[4:5]
1355 ; GFX10-DL-NEXT: global_load_dwordx2 v[2:3], v4, s[6:7]
1356 ; GFX10-DL-NEXT: s_load_dword s2, s[0:1], 0x0
1357 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
1358 ; GFX10-DL-NEXT: v_mul_u32_u24_sdwa v0, v2, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD…
1359 ; GFX10-DL-NEXT: v_mul_u32_u24_sdwa v1, v3, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD…
1360 ; GFX10-DL-NEXT: v_mov_b32_e32 v2, 0
1361 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
1362 ; GFX10-DL-NEXT: v_add3_u32 v0, v1, s2, v0
1363 ; GFX10-DL-NEXT: global_store_dword v2, v0, s[0:1]
1364 ; GFX10-DL-NEXT: s_endpgm
1470 ; GFX9-DL-LABEL: notudot2_v4i16_Middle:
1471 ; GFX9-DL: ; %bb.0: ; %entry
1472 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1473 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
1474 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v4, 3, v0
1475 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
1476 ; GFX9-DL-NEXT: global_load_dwordx2 v[0:1], v4, s[4:5]
1477 ; GFX9-DL-NEXT: global_load_dwordx2 v[2:3], v4, s[6:7]
1478 ; GFX9-DL-NEXT: s_load_dword s0, s[2:3], 0x0
1479 ; GFX9-DL-NEXT: v_mov_b32_e32 v4, 0
1480 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
1481 ; GFX9-DL-NEXT: v_mul_u32_u24_sdwa v0, v2, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_…
1482 ; GFX9-DL-NEXT: v_mul_u32_u24_sdwa v1, v3, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_…
1483 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
1484 ; GFX9-DL-NEXT: v_add3_u32 v0, v1, s0, v0
1485 ; GFX9-DL-NEXT: global_store_dword v4, v0, s[2:3]
1486 ; GFX9-DL-NEXT: s_endpgm
1488 ; GFX10-DL-LABEL: notudot2_v4i16_Middle:
1489 ; GFX10-DL: ; %bb.0: ; %entry
1490 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1491 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v4, 3, v0
1492 ; GFX10-DL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
1493 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
1494 ; GFX10-DL-NEXT: s_clause 0x1
1495 ; GFX10-DL-NEXT: global_load_dwordx2 v[0:1], v4, s[4:5]
1496 ; GFX10-DL-NEXT: global_load_dwordx2 v[2:3], v4, s[6:7]
1497 ; GFX10-DL-NEXT: s_load_dword s2, s[0:1], 0x0
1498 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
1499 ; GFX10-DL-NEXT: v_mul_u32_u24_sdwa v0, v2, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD…
1500 ; GFX10-DL-NEXT: v_mul_u32_u24_sdwa v1, v3, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD…
1501 ; GFX10-DL-NEXT: v_mov_b32_e32 v2, 0
1502 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
1503 ; GFX10-DL-NEXT: v_add3_u32 v0, v1, s2, v0
1504 ; GFX10-DL-NEXT: global_store_dword v2, v0, s[0:1]
1505 ; GFX10-DL-NEXT: s_endpgm
1610 ; GFX9-DL-LABEL: notudot2_DiffIndex:
1611 ; GFX9-DL: ; %bb.0: ; %entry
1612 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1613 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
1614 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
1615 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
1616 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
1617 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
1618 ; GFX9-DL-NEXT: s_load_dword s0, s[2:3], 0x0
1619 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
1620 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
1621 ; GFX9-DL-NEXT: v_mul_u32_u24_sdwa v3, v2, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_…
1622 ; GFX9-DL-NEXT: v_mul_u32_u24_sdwa v1, v2, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_…
1623 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
1624 ; GFX9-DL-NEXT: v_add3_u32 v1, v1, s0, v3
1625 ; GFX9-DL-NEXT: global_store_dword v0, v1, s[2:3]
1626 ; GFX9-DL-NEXT: s_endpgm
1628 ; GFX10-DL-LABEL: notudot2_DiffIndex:
1629 ; GFX10-DL: ; %bb.0: ; %entry
1630 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1631 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
1632 ; GFX10-DL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
1633 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
1634 ; GFX10-DL-NEXT: s_clause 0x1
1635 ; GFX10-DL-NEXT: global_load_dword v1, v0, s[4:5]
1636 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[6:7]
1637 ; GFX10-DL-NEXT: s_load_dword s2, s[0:1], 0x0
1638 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
1639 ; GFX10-DL-NEXT: v_mul_u32_u24_sdwa v0, v2, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD…
1640 ; GFX10-DL-NEXT: v_mul_u32_u24_sdwa v1, v2, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD…
1641 ; GFX10-DL-NEXT: v_mov_b32_e32 v2, 0
1642 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
1643 ; GFX10-DL-NEXT: v_add3_u32 v0, v1, s2, v0
1644 ; GFX10-DL-NEXT: global_store_dword v2, v0, s[0:1]
1645 ; GFX10-DL-NEXT: s_endpgm
1754 ; GFX9-DL-LABEL: udot2_MultipleUses_add1:
1755 ; GFX9-DL: ; %bb.0: ; %entry
1756 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1757 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
1758 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
1759 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
1760 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
1761 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
1762 ; GFX9-DL-NEXT: s_load_dword s0, s[2:3], 0x0
1763 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
1764 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
1765 ; GFX9-DL-NEXT: v_mul_u32_u24_sdwa v3, v2, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_…
1766 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v1, 16, v1
1767 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v2, 16, v2
1768 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
1769 ; GFX9-DL-NEXT: v_mad_u32_u24 v1, v2, v1, s0
1770 ; GFX9-DL-NEXT: v_add3_u32 v1, v1, v3, v1
1771 ; GFX9-DL-NEXT: global_store_dword v0, v1, s[2:3]
1772 ; GFX9-DL-NEXT: s_endpgm
1774 ; GFX10-DL-LABEL: udot2_MultipleUses_add1:
1775 ; GFX10-DL: ; %bb.0: ; %entry
1776 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1777 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
1778 ; GFX10-DL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
1779 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
1780 ; GFX10-DL-NEXT: s_clause 0x1
1781 ; GFX10-DL-NEXT: global_load_dword v1, v0, s[4:5]
1782 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[6:7]
1783 ; GFX10-DL-NEXT: s_load_dword s2, s[0:1], 0x0
1784 ; GFX10-DL-NEXT: s_waitcnt vmcnt(1)
1785 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v0, 16, v1
1786 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
1787 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v3, 16, v2
1788 ; GFX10-DL-NEXT: v_mul_u32_u24_sdwa v1, v2, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD…
1789 ; GFX10-DL-NEXT: v_mov_b32_e32 v2, 0
1790 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
1791 ; GFX10-DL-NEXT: v_mad_u32_u24 v0, v3, v0, s2
1792 ; GFX10-DL-NEXT: v_add3_u32 v0, v0, v1, v0
1793 ; GFX10-DL-NEXT: global_store_dword v2, v0, s[0:1]
1794 ; GFX10-DL-NEXT: s_endpgm
1905 ; GFX9-DL-LABEL: idot2_MultipleUses_add1:
1906 ; GFX9-DL: ; %bb.0: ; %entry
1907 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1908 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
1909 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
1910 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
1911 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
1912 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
1913 ; GFX9-DL-NEXT: s_load_dword s0, s[2:3], 0x0
1914 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
1915 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
1916 ; GFX9-DL-NEXT: v_mul_i32_i24_sdwa v3, sext(v2), sext(v1) dst_sel:DWORD dst_unused:UNUSED_PAD sr…
1917 ; GFX9-DL-NEXT: v_ashrrev_i32_e32 v1, 16, v1
1918 ; GFX9-DL-NEXT: v_ashrrev_i32_e32 v2, 16, v2
1919 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
1920 ; GFX9-DL-NEXT: v_mad_i32_i24 v1, v2, v1, s0
1921 ; GFX9-DL-NEXT: v_add3_u32 v1, v1, v3, v1
1922 ; GFX9-DL-NEXT: global_store_dword v0, v1, s[2:3]
1923 ; GFX9-DL-NEXT: s_endpgm
1925 ; GFX10-DL-LABEL: idot2_MultipleUses_add1:
1926 ; GFX10-DL: ; %bb.0: ; %entry
1927 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
1928 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
1929 ; GFX10-DL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
1930 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
1931 ; GFX10-DL-NEXT: s_clause 0x1
1932 ; GFX10-DL-NEXT: global_load_dword v1, v0, s[4:5]
1933 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[6:7]
1934 ; GFX10-DL-NEXT: s_load_dword s2, s[0:1], 0x0
1935 ; GFX10-DL-NEXT: s_waitcnt vmcnt(1)
1936 ; GFX10-DL-NEXT: v_ashrrev_i32_e32 v0, 16, v1
1937 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
1938 ; GFX10-DL-NEXT: v_ashrrev_i32_e32 v3, 16, v2
1939 ; GFX10-DL-NEXT: v_mul_i32_i24_sdwa v1, sext(v2), sext(v1) dst_sel:DWORD dst_unused:UNUSED_PAD s…
1940 ; GFX10-DL-NEXT: v_mov_b32_e32 v2, 0
1941 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
1942 ; GFX10-DL-NEXT: v_mad_i32_i24 v0, v3, v0, s2
1943 ; GFX10-DL-NEXT: v_add3_u32 v0, v0, v1, v0
1944 ; GFX10-DL-NEXT: global_store_dword v2, v0, s[0:1]
1945 ; GFX10-DL-NEXT: s_endpgm
2058 ; GFX9-DL-LABEL: udot2_MultipleUses_mul1:
2059 ; GFX9-DL: ; %bb.0: ; %entry
2060 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
2061 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
2062 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
2063 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
2064 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
2065 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
2066 ; GFX9-DL-NEXT: s_load_dword s0, s[2:3], 0x0
2067 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
2068 ; GFX9-DL-NEXT: s_waitcnt vmcnt(1)
2069 ; GFX9-DL-NEXT: v_and_b32_e32 v3, 0xffff, v1
2070 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
2071 ; GFX9-DL-NEXT: v_and_b32_e32 v4, 0xffff, v2
2072 ; GFX9-DL-NEXT: v_mul_u32_u24_sdwa v1, v2, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_…
2073 ; GFX9-DL-NEXT: v_mul_u32_u24_e32 v2, v4, v3
2074 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
2075 ; GFX9-DL-NEXT: v_mad_u32_u24 v3, v4, v3, s0
2076 ; GFX9-DL-NEXT: v_add3_u32 v1, v1, v3, v2
2077 ; GFX9-DL-NEXT: global_store_dword v0, v1, s[2:3]
2078 ; GFX9-DL-NEXT: s_endpgm
2080 ; GFX10-DL-LABEL: udot2_MultipleUses_mul1:
2081 ; GFX10-DL: ; %bb.0: ; %entry
2082 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
2083 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
2084 ; GFX10-DL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
2085 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
2086 ; GFX10-DL-NEXT: s_clause 0x1
2087 ; GFX10-DL-NEXT: global_load_dword v1, v0, s[4:5]
2088 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[6:7]
2089 ; GFX10-DL-NEXT: s_load_dword s2, s[0:1], 0x0
2090 ; GFX10-DL-NEXT: s_waitcnt vmcnt(1)
2091 ; GFX10-DL-NEXT: v_and_b32_e32 v0, 0xffff, v1
2092 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
2093 ; GFX10-DL-NEXT: v_and_b32_e32 v3, 0xffff, v2
2094 ; GFX10-DL-NEXT: v_mul_u32_u24_sdwa v1, v2, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD…
2095 ; GFX10-DL-NEXT: v_mul_u32_u24_e32 v2, v3, v0
2096 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
2097 ; GFX10-DL-NEXT: v_mad_u32_u24 v0, v3, v0, s2
2098 ; GFX10-DL-NEXT: v_mov_b32_e32 v3, 0
2099 ; GFX10-DL-NEXT: v_add3_u32 v0, v1, v0, v2
2100 ; GFX10-DL-NEXT: global_store_dword v3, v0, s[0:1]
2101 ; GFX10-DL-NEXT: s_endpgm
2215 ; GFX9-DL-LABEL: idot2_MultipleUses_mul1:
2216 ; GFX9-DL: ; %bb.0: ; %entry
2217 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
2218 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
2219 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
2220 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
2221 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
2222 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
2223 ; GFX9-DL-NEXT: s_load_dword s0, s[2:3], 0x0
2224 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
2225 ; GFX9-DL-NEXT: s_waitcnt vmcnt(1)
2226 ; GFX9-DL-NEXT: v_bfe_i32 v3, v1, 0, 16
2227 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
2228 ; GFX9-DL-NEXT: v_bfe_i32 v4, v2, 0, 16
2229 ; GFX9-DL-NEXT: v_mul_i32_i24_sdwa v1, sext(v2), sext(v1) dst_sel:DWORD dst_unused:UNUSED_PAD sr…
2230 ; GFX9-DL-NEXT: v_mul_i32_i24_e32 v2, v4, v3
2231 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
2232 ; GFX9-DL-NEXT: v_mad_i32_i24 v3, v4, v3, s0
2233 ; GFX9-DL-NEXT: v_add3_u32 v1, v1, v3, v2
2234 ; GFX9-DL-NEXT: global_store_dword v0, v1, s[2:3]
2235 ; GFX9-DL-NEXT: s_endpgm
2237 ; GFX10-DL-LABEL: idot2_MultipleUses_mul1:
2238 ; GFX10-DL: ; %bb.0: ; %entry
2239 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
2240 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
2241 ; GFX10-DL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
2242 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
2243 ; GFX10-DL-NEXT: s_clause 0x1
2244 ; GFX10-DL-NEXT: global_load_dword v1, v0, s[4:5]
2245 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[6:7]
2246 ; GFX10-DL-NEXT: s_load_dword s2, s[0:1], 0x0
2247 ; GFX10-DL-NEXT: s_waitcnt vmcnt(1)
2248 ; GFX10-DL-NEXT: v_bfe_i32 v0, v1, 0, 16
2249 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
2250 ; GFX10-DL-NEXT: v_bfe_i32 v3, v2, 0, 16
2251 ; GFX10-DL-NEXT: v_mul_i32_i24_sdwa v1, sext(v2), sext(v1) dst_sel:DWORD dst_unused:UNUSED_PAD s…
2252 ; GFX10-DL-NEXT: v_mul_i32_i24_e32 v2, v3, v0
2253 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
2254 ; GFX10-DL-NEXT: v_mad_i32_i24 v0, v3, v0, s2
2255 ; GFX10-DL-NEXT: v_mov_b32_e32 v3, 0
2256 ; GFX10-DL-NEXT: v_add3_u32 v0, v1, v0, v2
2257 ; GFX10-DL-NEXT: global_store_dword v3, v0, s[0:1]
2258 ; GFX10-DL-NEXT: s_endpgm
2371 ; GFX9-DL-LABEL: udot2_MultipleUses_mul2:
2372 ; GFX9-DL: ; %bb.0: ; %entry
2373 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
2374 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
2375 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
2376 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
2377 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
2378 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
2379 ; GFX9-DL-NEXT: s_load_dword s0, s[2:3], 0x0
2380 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
2381 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
2382 ; GFX9-DL-NEXT: v_mul_u32_u24_sdwa v3, v2, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_…
2383 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v1, 16, v1
2384 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v2, 16, v2
2385 ; GFX9-DL-NEXT: v_mul_u32_u24_e32 v4, v2, v1
2386 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
2387 ; GFX9-DL-NEXT: v_mad_u32_u24 v1, v2, v1, s0
2388 ; GFX9-DL-NEXT: v_add3_u32 v1, v4, v1, v3
2389 ; GFX9-DL-NEXT: global_store_dword v0, v1, s[2:3]
2390 ; GFX9-DL-NEXT: s_endpgm
2392 ; GFX10-DL-LABEL: udot2_MultipleUses_mul2:
2393 ; GFX10-DL: ; %bb.0: ; %entry
2394 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
2395 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
2396 ; GFX10-DL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
2397 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
2398 ; GFX10-DL-NEXT: s_clause 0x1
2399 ; GFX10-DL-NEXT: global_load_dword v1, v0, s[4:5]
2400 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[6:7]
2401 ; GFX10-DL-NEXT: s_load_dword s2, s[0:1], 0x0
2402 ; GFX10-DL-NEXT: s_waitcnt vmcnt(1)
2403 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v0, 16, v1
2404 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
2405 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v3, 16, v2
2406 ; GFX10-DL-NEXT: v_mul_u32_u24_sdwa v1, v2, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD…
2407 ; GFX10-DL-NEXT: v_mul_u32_u24_e32 v2, v3, v0
2408 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
2409 ; GFX10-DL-NEXT: v_mad_u32_u24 v0, v3, v0, s2
2410 ; GFX10-DL-NEXT: v_mov_b32_e32 v3, 0
2411 ; GFX10-DL-NEXT: v_add3_u32 v0, v2, v0, v1
2412 ; GFX10-DL-NEXT: global_store_dword v3, v0, s[0:1]
2413 ; GFX10-DL-NEXT: s_endpgm
2526 ; GFX9-DL-LABEL: idot2_MultipleUses_mul2:
2527 ; GFX9-DL: ; %bb.0: ; %entry
2528 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
2529 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
2530 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
2531 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
2532 ; GFX9-DL-NEXT: global_load_dword v1, v0, s[4:5]
2533 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[6:7]
2534 ; GFX9-DL-NEXT: s_load_dword s0, s[2:3], 0x0
2535 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
2536 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
2537 ; GFX9-DL-NEXT: v_mul_i32_i24_sdwa v3, sext(v2), sext(v1) dst_sel:DWORD dst_unused:UNUSED_PAD sr…
2538 ; GFX9-DL-NEXT: v_ashrrev_i32_e32 v1, 16, v1
2539 ; GFX9-DL-NEXT: v_ashrrev_i32_e32 v2, 16, v2
2540 ; GFX9-DL-NEXT: v_mul_i32_i24_e32 v4, v2, v1
2541 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
2542 ; GFX9-DL-NEXT: v_mad_i32_i24 v1, v2, v1, s0
2543 ; GFX9-DL-NEXT: v_add3_u32 v1, v4, v1, v3
2544 ; GFX9-DL-NEXT: global_store_dword v0, v1, s[2:3]
2545 ; GFX9-DL-NEXT: s_endpgm
2547 ; GFX10-DL-LABEL: idot2_MultipleUses_mul2:
2548 ; GFX10-DL: ; %bb.0: ; %entry
2549 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
2550 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
2551 ; GFX10-DL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
2552 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
2553 ; GFX10-DL-NEXT: s_clause 0x1
2554 ; GFX10-DL-NEXT: global_load_dword v1, v0, s[4:5]
2555 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[6:7]
2556 ; GFX10-DL-NEXT: s_load_dword s2, s[0:1], 0x0
2557 ; GFX10-DL-NEXT: s_waitcnt vmcnt(1)
2558 ; GFX10-DL-NEXT: v_ashrrev_i32_e32 v0, 16, v1
2559 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
2560 ; GFX10-DL-NEXT: v_ashrrev_i32_e32 v3, 16, v2
2561 ; GFX10-DL-NEXT: v_mul_i32_i24_sdwa v1, sext(v2), sext(v1) dst_sel:DWORD dst_unused:UNUSED_PAD s…
2562 ; GFX10-DL-NEXT: v_mul_i32_i24_e32 v2, v3, v0
2563 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
2564 ; GFX10-DL-NEXT: v_mad_i32_i24 v0, v3, v0, s2
2565 ; GFX10-DL-NEXT: v_mov_b32_e32 v3, 0
2566 ; GFX10-DL-NEXT: v_add3_u32 v0, v2, v0, v1
2567 ; GFX10-DL-NEXT: global_store_dword v3, v0, s[0:1]
2568 ; GFX10-DL-NEXT: s_endpgm
2676 ; GFX9-DL-LABEL: udot2_acc16:
2677 ; GFX9-DL: ; %bb.0: ; %entry
2678 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
2679 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
2680 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
2681 ; GFX9-DL-NEXT: v_mov_b32_e32 v1, 0
2682 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
2683 ; GFX9-DL-NEXT: global_load_dword v2, v0, s[4:5]
2684 ; GFX9-DL-NEXT: global_load_dword v3, v0, s[6:7]
2685 ; GFX9-DL-NEXT: global_load_ushort v4, v1, s[2:3]
2686 ; GFX9-DL-NEXT: s_waitcnt vmcnt(2)
2687 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v0, 16, v2
2688 ; GFX9-DL-NEXT: s_waitcnt vmcnt(1)
2689 ; GFX9-DL-NEXT: v_lshrrev_b32_e32 v5, 16, v3
2690 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
2691 ; GFX9-DL-NEXT: v_mad_legacy_u16 v0, v0, v5, v4
2692 ; GFX9-DL-NEXT: v_mad_legacy_u16 v0, v2, v3, v0
2693 ; GFX9-DL-NEXT: global_store_short v1, v0, s[2:3]
2694 ; GFX9-DL-NEXT: s_endpgm
2696 ; GFX10-DL-LABEL: udot2_acc16:
2697 ; GFX10-DL: ; %bb.0: ; %entry
2698 ; GFX10-DL-NEXT: s_clause 0x1
2699 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
2700 ; GFX10-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
2701 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 2, v0
2702 ; GFX10-DL-NEXT: v_mov_b32_e32 v1, 0
2703 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
2704 ; GFX10-DL-NEXT: s_clause 0x1
2705 ; GFX10-DL-NEXT: global_load_dword v2, v0, s[4:5]
2706 ; GFX10-DL-NEXT: global_load_dword v3, v0, s[6:7]
2707 ; GFX10-DL-NEXT: global_load_ushort v4, v1, s[2:3]
2708 ; GFX10-DL-NEXT: s_waitcnt vmcnt(2)
2709 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v0, 16, v2
2710 ; GFX10-DL-NEXT: s_waitcnt vmcnt(1)
2711 ; GFX10-DL-NEXT: v_lshrrev_b32_e32 v5, 16, v3
2712 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
2713 ; GFX10-DL-NEXT: v_mad_u16 v0, v0, v5, v4
2714 ; GFX10-DL-NEXT: v_mad_u16 v0, v2, v3, v0
2715 ; GFX10-DL-NEXT: global_store_short v1, v0, s[2:3]
2716 ; GFX10-DL-NEXT: s_endpgm
2821 ; GFX9-DL-LABEL: notsdot2_sext8:
2822 ; GFX9-DL: ; %bb.0: ; %entry
2823 ; GFX9-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
2824 ; GFX9-DL-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34
2825 ; GFX9-DL-NEXT: v_lshlrev_b32_e32 v0, 1, v0
2826 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
2827 ; GFX9-DL-NEXT: global_load_ushort v1, v0, s[4:5]
2828 ; GFX9-DL-NEXT: global_load_ushort v2, v0, s[6:7]
2829 ; GFX9-DL-NEXT: s_load_dword s0, s[2:3], 0x0
2830 ; GFX9-DL-NEXT: v_mov_b32_e32 v0, 0
2831 ; GFX9-DL-NEXT: s_waitcnt vmcnt(0)
2832 ; GFX9-DL-NEXT: v_mul_i32_i24_sdwa v3, sext(v2), sext(v1) dst_sel:DWORD dst_unused:UNUSED_PAD sr…
2833 ; GFX9-DL-NEXT: v_lshrrev_b16_e32 v1, 8, v1
2834 ; GFX9-DL-NEXT: v_lshrrev_b16_e32 v2, 8, v2
2835 ; GFX9-DL-NEXT: v_mul_i32_i24_sdwa v1, sext(v2), sext(v1) dst_sel:DWORD dst_unused:UNUSED_PAD sr…
2836 ; GFX9-DL-NEXT: s_waitcnt lgkmcnt(0)
2837 ; GFX9-DL-NEXT: v_add3_u32 v1, v1, s0, v3
2838 ; GFX9-DL-NEXT: global_store_dword v0, v1, s[2:3]
2839 ; GFX9-DL-NEXT: s_endpgm
2841 ; GFX10-DL-LABEL: notsdot2_sext8:
2842 ; GFX10-DL: ; %bb.0: ; %entry
2843 ; GFX10-DL-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
2844 ; GFX10-DL-NEXT: v_lshlrev_b32_e32 v0, 1, v0
2845 ; GFX10-DL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x34
2846 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
2847 ; GFX10-DL-NEXT: s_clause 0x1
2848 ; GFX10-DL-NEXT: global_load_ushort v1, v0, s[4:5]
2849 ; GFX10-DL-NEXT: global_load_ushort v2, v0, s[6:7]
2850 ; GFX10-DL-NEXT: s_load_dword s2, s[0:1], 0x0
2851 ; GFX10-DL-NEXT: s_waitcnt vmcnt(1)
2852 ; GFX10-DL-NEXT: v_lshrrev_b16 v0, 8, v1
2853 ; GFX10-DL-NEXT: s_waitcnt vmcnt(0)
2854 ; GFX10-DL-NEXT: v_lshrrev_b16 v3, 8, v2
2855 ; GFX10-DL-NEXT: v_mul_i32_i24_sdwa v1, sext(v2), sext(v1) dst_sel:DWORD dst_unused:UNUSED_PAD s…
2856 ; GFX10-DL-NEXT: v_mov_b32_e32 v2, 0
2857 ; GFX10-DL-NEXT: v_mul_i32_i24_sdwa v0, sext(v3), sext(v0) dst_sel:DWORD dst_unused:UNUSED_PAD s…
2858 ; GFX10-DL-NEXT: s_waitcnt lgkmcnt(0)
2859 ; GFX10-DL-NEXT: v_add3_u32 v0, v0, s2, v1
2860 ; GFX10-DL-NEXT: global_store_dword v2, v0, s[0:1]
2861 ; GFX10-DL-NEXT: s_endpgm