Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / mai-hazards-gfx940.mir
bloba98b02d792d9849477edb0969d34ccad94801551
1 # RUN: llc -mtriple=amdgcn -mcpu=gfx940 -verify-machineinstrs -run-pass post-RA-hazard-rec %s -o - | FileCheck -check-prefix=GCN %s
3 # GCN-LABEL: name: valu_write_vgpr_sgemm_mfma_read
4 # GCN:      V_MOV_B32
5 # GCN:      V_MOV_B32
6 # GCN-NEXT: S_NOP 1
7 # GCN-NEXT: V_MFMA
8 name:            valu_write_vgpr_sgemm_mfma_read
9 body:             |
10   bb.0:
11     $vgpr0 = V_MOV_B32_e32 1, implicit $exec
12     $vgpr1 = V_MOV_B32_e32 1, implicit $exec
13     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
14 ...
15 # GCN-LABEL: name: valu_write_agpr_sgemm_mfma_read
16 # GCN:      V_ACCVGPR_WRITE_B32_e64
17 # GCN-NEXT: S_NOP 1
18 # GCN-NEXT: V_MFMA
19 name:            valu_write_agpr_sgemm_mfma_read
20 body:             |
21   bb.0:
22     $vgpr0 = IMPLICIT_DEF
23     $agpr4 = V_ACCVGPR_WRITE_B32_e64 1, implicit $exec
24     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $agpr4, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
25 ...
26 # GCN-LABEL: name: valu_write_vgpr_dgemm_mfma_read
27 # GCN:      V_MOV_B32
28 # GCN:      V_MOV_B32
29 # GCN-NEXT: S_NOP 1
30 # GCN-NEXT: V_MFMA
31 name:            valu_write_vgpr_dgemm_mfma_read
32 body:             |
33   bb.0:
34     $vgpr0 = V_MOV_B32_e32 1, implicit $exec
35     $vgpr1 = V_MOV_B32_e32 1, implicit $exec
36     $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec
37 ...
38 # GCN-LABEL: name: valu_write_vgpr_smfmac_read
39 # GCN:      V_MOV_B32
40 # GCN-NEXT: S_NOP 1
41 # GCN-NEXT: V_SMFMAC
42 name:            valu_write_vgpr_smfmac_read
43 body:             |
44   bb.0:
45     $vgpr32 = V_MOV_B32_e32 1, implicit $exec
46     $agpr0_agpr1_agpr2_agpr3 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $agpr0_agpr1_agpr2_agpr3, implicit $mode, implicit $exec
47 ...
48 # GCN-LABEL: name: accmov_write_agpr_sgemm_mfma_read
49 # GCN:      V_ACCVGPR_MOV_B32
50 # GCN-NEXT: S_NOP 1
51 # GCN-NEXT: V_MFMA
52 name:            accmov_write_agpr_sgemm_mfma_read
53 body:             |
54   bb.0:
55     $vgpr0 = IMPLICIT_DEF
56     $agpr4 = V_ACCVGPR_MOV_B32 $agpr5, implicit $exec
57     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $agpr4, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
58 ...
59 # GCN-LABEL: name: nonxdl_sgemm4x4_mfma_write_agpr_mfma_read_same_agpr_as_srcc
60 # GCN:      V_MFMA
61 # GCN-NEXT: S_NOP 1
62 # GCN-NEXT: V_MFMA
63 name:            nonxdl_sgemm4x4_mfma_write_agpr_mfma_read_same_agpr_as_srcc
64 body:             |
65   bb.0:
66     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
67     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
68 ...
69 # GCN-LABEL: name: nonxdl_sgemm4x4_mfma_write_vgpr_mfma_read_same_vgpr_as_srcc
70 # GCN:      V_MFMA
71 # GCN-NEXT: S_NOP 1
72 # GCN-NEXT: V_MFMA
73 name:            nonxdl_sgemm4x4_mfma_write_vgpr_mfma_read_same_vgpr_as_srcc
74 body:             |
75   bb.0:
76     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr4, $vgpr5, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
77     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr4, $vgpr5, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
78 ...
79 # GCN-LABEL: name: nonxdl_sgemm16x16_mfma_write_vgpr_mfma_read_same_vgpr_as_srcc
80 # GCN:      V_MFMA
81 # GCN-NEXT: V_MFMA
82 name:            nonxdl_sgemm16x16_mfma_write_vgpr_mfma_read_same_vgpr_as_srcc
83 body:             |
84   bb.0:
85     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr26, $vgpr27, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
86     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr26, $vgpr27, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
87 ...
88 # GCN-LABEL: name: nonxdl_sgemm4x4_mfma_write_agpr_smfmac_read_same_agpr_as_srcc
89 # GCN:      V_MFMA
90 # GCN-NEXT: S_NOP 1
91 # GCN-NEXT: V_SMFMAC
92 name:            nonxdl_sgemm4x4_mfma_write_agpr_smfmac_read_same_agpr_as_srcc
93 body:             |
94   bb.0:
95     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $vgpr4, $vgpr5, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
96     $agpr0_agpr1_agpr2_agpr3 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $agpr0_agpr1_agpr2_agpr3, implicit $mode, implicit $exec
97 ...
98 # GCN-LABEL: name: dgemm16x16_mfma_write_vgpr_mfma_read_same_vgpr_as_srcc
99 # GCN:      V_MFMA
100 # GCN-NEXT: V_MFMA
101 name:            dgemm16x16_mfma_write_vgpr_mfma_read_same_vgpr_as_srcc
102 body:             |
103   bb.0:
104     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec
105     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec
107 # GCN-LABEL: name: dgemm4x4_mfma_write_vgpr_mfma_read_same_vgpr_as_srcc
108 # GCN:      V_MFMA
109 # GCN-NEXT: S_NOP 3
110 # GCN-NEXT: V_MFMA
111 name:            dgemm4x4_mfma_write_vgpr_mfma_read_same_vgpr_as_srcc
112 body:             |
113   bb.0:
114     $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
115     $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
117 # GCN-LABEL: name: xdl_sgemm4x4_mfma_write_vgpr_mfma_read_same_vgpr_as_srcc
118 # GCN:      V_MFMA
119 # GCN-NEXT: S_NOP 1
120 # GCN-NEXT: V_MFMA
121 name:            xdl_sgemm4x4_mfma_write_vgpr_mfma_read_same_vgpr_as_srcc
122 body:             |
123   bb.0:
124     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_4X4X4I8_vgprcd_e64 $vgpr4, $vgpr5, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
125     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_4X4X4I8_vgprcd_e64 $vgpr4, $vgpr5, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
127 # GCN-LABEL: name: xdl_sgemm16x16_mfma_write_vgpr_mfma_read_same_vgpr_as_srcc
128 # GCN:      V_MFMA
129 # GCN-NEXT: V_MFMA
130 name:            xdl_sgemm16x16_mfma_write_vgpr_mfma_read_same_vgpr_as_srcc
131 body:             |
132   bb.0:
133     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_I32_16X16X32I8_e64 $vgpr0_vgpr1, $vgpr2_vgpr3, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
134     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_I32_16X16X32I8_e64 $vgpr0_vgpr1, $vgpr2_vgpr3, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
136 # GCN-LABEL: name: smfmac16x16_mfma_write_vgpr_mfma_read_same_vgpr_as_srcc
137 # GCN:      V_SMFMAC
138 # GCN-NEXT: V_SMFMAC
139 name:            smfmac16x16_mfma_write_vgpr_mfma_read_same_vgpr_as_srcc
140 body:             |
141   bb.0:
142     $agpr0_agpr1_agpr2_agpr3 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $agpr0_agpr1_agpr2_agpr3, implicit $mode, implicit $exec
143     $agpr0_agpr1_agpr2_agpr3 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $agpr0_agpr1_agpr2_agpr3, implicit $mode, implicit $exec
145 # GCN-LABEL: name: sgemm4x4_mfma_write_agpr_mfma_read_overlap
146 # GCN:      V_MFMA
147 # GCN-NEXT: S_NOP 2
148 # GCN-NEXT: V_MFMA
149 name:            sgemm4x4_mfma_write_agpr_mfma_read_overlap
150 body:             |
151   bb.0:
152     $agpr2_agpr3_agpr4_agpr5 = V_MFMA_I32_4X4X4I8_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
153     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_I32_4X4X4I8_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
155 # GCN-LABEL: name: sgemm4x4_mfma_write_vgpr_mfma_read_overlap
156 # GCN:      V_MFMA
157 # GCN-NEXT: S_NOP 2
158 # GCN-NEXT: V_MFMA
159 name:            sgemm4x4_mfma_write_vgpr_mfma_read_overlap
160 body:             |
161   bb.0:
162     $vgpr2_vgpr3_vgpr4_vgpr5 = V_MFMA_I32_4X4X4I8_vgprcd_e64 $vgpr6, $vgpr7, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
163     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr6, $vgpr7, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
165 # GCN-LABEL: name: sgemm4x4_mfma_write_agpr_smfmac_read_overlap
166 # GCN:      V_MFMA
167 # GCN-NEXT: S_NOP 2
168 # GCN-NEXT: V_SMFMAC
169 name:            sgemm4x4_mfma_write_agpr_smfmac_read_overlap
170 body:             |
171   bb.0:
172     $agpr2_agpr3_agpr4_agpr5 = V_MFMA_I32_4X4X4I8_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
173     $agpr0_agpr1_agpr2_agpr3 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $agpr0_agpr1_agpr2_agpr3, implicit $mode, implicit $exec
175 # GCN-LABEL: name: xdl_sgemm16x16_mfma_write_agpr_mfma_read_overlap
176 # GCN:      V_MFMA
177 # GCN-NEXT: S_NOP 7
178 # GCN-NEXT: S_NOP 0
179 # GCN-NEXT: V_MFMA
180 name:            xdl_sgemm16x16_mfma_write_agpr_mfma_read_overlap
181 body:             |
182   bb.0:
183     $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17 = V_MFMA_I32_16X16X4I8_e64 $vgpr26, $vgpr27, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $mode, implicit $exec
184     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_MFMA_F32_16X16X1F32_e64 $vgpr26, $vgpr27, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $mode, implicit $exec
186 # GCN-LABEL: name: xdl_sgemm16x16_mfma_write_vgpr_mfma_read_overlap
187 # GCN:      V_MFMA
188 # GCN-NEXT: S_NOP 7
189 # GCN-NEXT: S_NOP 0
190 # GCN-NEXT: V_MFMA
191 name:            xdl_sgemm16x16_mfma_write_vgpr_mfma_read_overlap
192 body:             |
193   bb.0:
194     $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_I32_16X16X4I8_vgprcd_e64 $vgpr26, $vgpr27, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
195     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_I32_16X16X4I8_vgprcd_e64 $vgpr26, $vgpr27, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
197 # GCN-LABEL: name: nonxdl_sgemm16x16_mfma_write_agpr_xdl_mfma_read_overlap
198 # GCN:      V_MFMA
199 # GCN-NEXT: V_MFMA
200 name:            nonxdl_sgemm16x16_mfma_write_agpr_xdl_mfma_read_overlap
201 body:             |
202   bb.0:
203     $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17 = V_MFMA_F32_16X16X1F32_e64 $vgpr26, $vgpr27, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $mode, implicit $exec
204     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_MFMA_I32_16X16X4I8_e64 $vgpr26, $vgpr27, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $mode, implicit $exec
206 # GCN-LABEL: name: nonxdl_sgemm16x16_mfma_write_agpr_nonxdl_mfma_read_overlap
207 # GCN:      V_MFMA
208 # GCN-NEXT: S_NOP 7
209 # GCN-NEXT: V_MFMA
210 name:            nonxdl_sgemm16x16_mfma_write_agpr_nonxdl_mfma_read_overlap
211 body:             |
212   bb.0:
213     $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17 = V_MFMA_F32_16X16X1F32_e64 $vgpr26, $vgpr27, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $mode, implicit $exec
214     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_MFMA_F32_16X16X1F32_e64 $vgpr26, $vgpr27, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $mode, implicit $exec
216 # GCN-LABEL: name: xdl_sgemm16x16_mfma_write_agpr_smfmac_read_overlap
217 # GCN:      V_MFMA
218 # GCN-NEXT: S_NOP 7
219 # GCN-NEXT: S_NOP 0
220 # GCN-NEXT: V_SMFMAC
221 name:            xdl_sgemm16x16_mfma_write_agpr_smfmac_read_overlap
222 body:             |
223   bb.0:
224     $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17 = V_MFMA_I32_16X16X4I8_e64 $vgpr26, $vgpr27, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $mode, implicit $exec
225     $agpr0_agpr1_agpr2_agpr3 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $agpr0_agpr1_agpr2_agpr3, implicit $mode, implicit $exec
227 # GCN-LABEL: name: xdl_sgemm32x32_mfma_write_agpr_mfma_read_overlap
228 # GCN:      V_MFMA
229 # GCN-NEXT: S_NOP 7
230 # GCN-NEXT: S_NOP 7
231 # GCN-NEXT: S_NOP 0
232 # GCN-NEXT: V_MFMA
233 name:            xdl_sgemm32x32_mfma_write_agpr_mfma_read_overlap
234 body:             |
235   bb.0:
236     $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17_agpr18_agpr19_agpr20_agpr21_agpr22_agpr23_agpr24_agpr25_agpr26_agpr27_agpr28_agpr29_agpr30_agpr31_agpr32_agpr33 = V_MFMA_F32_32X32X4F16_e64 $vgpr26_vgpr27, $vgpr28_vgpr29, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17_agpr18_agpr19_agpr20_agpr21_agpr22_agpr23_agpr24_agpr25_agpr26_agpr27_agpr28_agpr29_agpr30_agpr31, 0, 0, 0, implicit $mode, implicit $exec
237     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_MFMA_F32_32X32X2F32_e64 $vgpr26, $vgpr27, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $mode, implicit $exec
239 # GCN-LABEL: name: xdl_sgemm32x32_mfma_write_vgpr_mfma_read_overlap
240 # GCN:      V_MFMA
241 # GCN-NEXT: S_NOP 7
242 # GCN-NEXT: S_NOP 7
243 # GCN-NEXT: S_NOP 0
244 # GCN-NEXT: V_MFMA
245 name:            xdl_sgemm32x32_mfma_write_vgpr_mfma_read_overlap
246 body:             |
247   bb.0:
248     $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31_vgpr32_vgpr33 = V_MFMA_F32_32X32X4F16_vgprcd_e64 $vgpr126_vgpr127, $vgpr128_vgpr129, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 0, 0, 0, implicit $mode, implicit $exec
249     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_32X32X2F32_vgprcd_e64 $vgpr126, $vgpr127, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
251 # GCN-LABEL: name: nonxdl_sgemm32x32_mfma_write_agpr_xdl_mfma_read_overlap
252 # GCN:      V_MFMA
253 # GCN-NEXT: V_MFMA
254 name:            nonxdl_sgemm32x32_mfma_write_agpr_xdl_mfma_read_overlap
255 body:             |
256   bb.0:
257     $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17_agpr18_agpr19_agpr20_agpr21_agpr22_agpr23_agpr24_agpr25_agpr26_agpr27_agpr28_agpr29_agpr30_agpr31_agpr32_agpr33 = V_MFMA_F32_32X32X1F32_e64 $vgpr26, $vgpr28, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17_agpr18_agpr19_agpr20_agpr21_agpr22_agpr23_agpr24_agpr25_agpr26_agpr27_agpr28_agpr29_agpr30_agpr31, 0, 0, 0, implicit $mode, implicit $exec
258     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_I32_4X4X4I8_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
260 # GCN-LABEL: name: nonxdl_sgemm32x32_mfma_write_agpr_nonxdl_mfma_read_overlap
261 # GCN:      V_MFMA
262 # GCN-NEXT: S_NOP 7
263 # GCN-NEXT: S_NOP 7
264 # GCN-NEXT: V_MFMA
265 name:            nonxdl_sgemm32x32_mfma_write_agpr_nonxdl_mfma_read_overlap
266 body:             |
267   bb.0:
268     $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17_agpr18_agpr19_agpr20_agpr21_agpr22_agpr23_agpr24_agpr25_agpr26_agpr27_agpr28_agpr29_agpr30_agpr31_agpr32_agpr33 = V_MFMA_F32_32X32X1F32_e64 $vgpr26, $vgpr28, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17_agpr18_agpr19_agpr20_agpr21_agpr22_agpr23_agpr24_agpr25_agpr26_agpr27_agpr28_agpr29_agpr30_agpr31, 0, 0, 0, implicit $mode, implicit $exec
269     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_MFMA_F32_32X32X2F32_e64 $vgpr26, $vgpr27, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $mode, implicit $exec
271 # GCN-LABEL: name: xdl_sgemm32x32_mfma_write_agpr_smfmac_read_overlap
272 # GCN:      V_MFMA
273 # GCN-NEXT: S_NOP 7
274 # GCN-NEXT: S_NOP 7
275 # GCN-NEXT: S_NOP 0
276 # GCN-NEXT: V_SMFMAC
277 name:            xdl_sgemm32x32_mfma_write_agpr_smfmac_read_overlap
278 body:             |
279   bb.0:
280     $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17_agpr18_agpr19_agpr20_agpr21_agpr22_agpr23_agpr24_agpr25_agpr26_agpr27_agpr28_agpr29_agpr30_agpr31_agpr32_agpr33 = V_MFMA_F32_32X32X4F16_e64 $vgpr26_vgpr27, $vgpr28_vgpr29, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17_agpr18_agpr19_agpr20_agpr21_agpr22_agpr23_agpr24_agpr25_agpr26_agpr27_agpr28_agpr29_agpr30_agpr31, 0, 0, 0, implicit $mode, implicit $exec
281     $agpr0_agpr1_agpr2_agpr3 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $agpr0_agpr1_agpr2_agpr3, implicit $mode, implicit $exec
283 # GCN-LABEL: name: dgemm16x16_mfma_write_vgpr_mfma_read_overlap
284 # GCN:      V_MFMA
285 # GCN-NEXT: S_NOP 7
286 # GCN-NEXT: S_NOP 0
287 # GCN-NEXT: V_MFMA
288 name:            dgemm16x16_mfma_write_vgpr_mfma_read_overlap
289 body:             |
290   bb.0:
291     $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec
292     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec
294 # GCN-LABEL: name: dgemm4x4_mfma_write_vgpr_mfma_read_overlap
295 # GCN:      V_MFMA
296 # GCN-NEXT: S_NOP 3
297 # GCN-NEXT: V_MFMA
298 name:            dgemm4x4_mfma_write_vgpr_mfma_read_overlap
299 body:             |
300   bb.0:
301     $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec
302     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec
304 # GCN-LABEL: name: dgemm16x16_mfma_write_vgpr_sgemm_mfma_read_overlap
305 # GCN:      V_MFMA
306 # GCN-NEXT: S_NOP 7
307 # GCN-NEXT: S_NOP 0
308 # GCN-NEXT: V_MFMA
309 name:            dgemm16x16_mfma_write_vgpr_sgemm_mfma_read_overlap
310 body:             |
311   bb.0:
312     $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec
313     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr10, $vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
315 # GCN-LABEL: name: dgemm4x4_mfma_write_vgpr_sgemm_mfma_read_overlap
316 # GCN:      V_MFMA
317 # GCN-NEXT: S_NOP 3
318 # GCN-NEXT: V_MFMA
319 name:            dgemm4x4_mfma_write_vgpr_sgemm_mfma_read_overlap
320 body:             |
321   bb.0:
322     $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec
323     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr10, $vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
325 # GCN-LABEL: name: sgemm4x4_mfma_write_vgpr_dgemm_mfma_read_overlap
326 # GCN:      V_MFMA
327 # GCN-NEXT: S_NOP 2
328 # GCN-NEXT: V_MFMA
329 name:            sgemm4x4_mfma_write_vgpr_dgemm_mfma_read_overlap
330 body:             |
331   bb.0:
332     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_4X4X4I8_vgprcd_e64 $vgpr10, $vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
333     $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec
335 # GCN-LABEL: name: xdl_sgemm16x16_mfma_write_vgpr_dgemm_mfma_read_overlap
336 # GCN:      V_MFMA
337 # GCN-NEXT: S_NOP 7
338 # GCN-NEXT: S_NOP 0
339 # GCN-NEXT: V_MFMA
340 name:            xdl_sgemm16x16_mfma_write_vgpr_dgemm_mfma_read_overlap
341 body:             |
342   bb.0:
343     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_I32_16X16X4I8_vgprcd_e64 $vgpr26, $vgpr27, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
344     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr20_vgpr21, $vgpr20_vgpr21, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec
346 # GCN-LABEL: name: xdl_sgemm32x32_mfma_write_vgpr_dgemm_mfma_read_overlap
347 # GCN:      V_MFMA
348 # GCN-NEXT: S_NOP 7
349 # GCN-NEXT: S_NOP 7
350 # GCN-NEXT: S_NOP 0
351 # GCN-NEXT: V_MFMA
352 name:            xdl_sgemm32x32_mfma_write_vgpr_dgemm_mfma_read_overlap
353 body:             |
354   bb.0:
355     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31 = V_MFMA_F32_32X32X4F16_vgprcd_e64 $vgpr126_vgpr127, $vgpr128_vgpr129, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 0, 0, 0, implicit $mode, implicit $exec
356     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr120_vgpr121, $vgpr120_vgpr121, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec
358 # GCN-LABEL: name: xdl_sgemm16x16_mfma_write_agpr_mfma_read_partial
359 # GCN:      V_MFMA
360 # GCN-NEXT: S_NOP 7
361 # GCN-NEXT: S_NOP 0
362 # GCN-NEXT: V_MFMA
363 name:            xdl_sgemm16x16_mfma_write_agpr_mfma_read_partial
364 body:             |
365   bb.0:
366     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_MFMA_I32_16X16X4I8_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $mode, implicit $exec
367     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
369 # GCN-LABEL: name: xdl_sgemm16x16_mfma_write_vgpr_mfma_read_partial
370 # GCN:      V_MFMA
371 # GCN-NEXT: S_NOP 7
372 # GCN-NEXT: S_NOP 0
373 # GCN-NEXT: V_MFMA
374 name:            xdl_sgemm16x16_mfma_write_vgpr_mfma_read_partial
375 body:             |
376   bb.0:
377     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_I32_16X16X4I8_vgprcd_e64 $vgpr16, $vgpr17, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
378     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr16, $vgpr17, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
380 # GCN-LABEL: name: xdl_sgemm4x4_mfma_write_agpr_mfma_srca_read_overlap
381 # GCN:      V_MFMA
382 # GCN-NEXT: S_NOP 4
383 # GCN-NEXT: V_MFMA
384 name:            xdl_sgemm4x4_mfma_write_agpr_mfma_srca_read_overlap
385 body:             |
386   bb.0:
387     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_I32_4X4X4I8_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
388     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $agpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
390 # GCN-LABEL: name: xdl_sgemm16x16_mfma_write_agpr_mfma_srca_read_overlap
391 # GCN:      V_MFMA
392 # GCN-NEXT: S_NOP 7
393 # GCN-NEXT: S_NOP 2
394 # GCN-NEXT: V_MFMA
395 name:            xdl_sgemm16x16_mfma_write_agpr_mfma_srca_read_overlap
396 body:             |
397   bb.0:
398     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_MFMA_I32_16X16X4I8_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $mode, implicit $exec
399     $agpr20_agpr21_agpr22_agpr23 = V_MFMA_F32_4X4X1F32_e64 $agpr1, $vgpr0, $agpr20_agpr21_agpr22_agpr23, 0, 0, 0, implicit $mode, implicit $exec
401 # GCN-LABEL: name: nonxdl_sgemm16x16_mfma_write_agpr_mfma_srca_read_overlap
402 # GCN:      V_MFMA
403 # GCN-NEXT: S_NOP 7
404 # GCN-NEXT: S_NOP 1
405 # GCN-NEXT: V_MFMA
406 name:            nonxdl_sgemm16x16_mfma_write_agpr_mfma_srca_read_overlap
407 body:             |
408   bb.0:
409     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_MFMA_F32_16X16X1F32_e64 $vgpr26, $vgpr27, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $mode, implicit $exec
410     $agpr20_agpr21_agpr22_agpr23 = V_MFMA_F32_4X4X1F32_e64 $agpr1, $vgpr0, $agpr20_agpr21_agpr22_agpr23, 0, 0, 0, implicit $mode, implicit $exec
412 # GCN-LABEL: name: smfmac32x32_write_agpr_mfma_srca_read_overlap
413 # GCN:      V_SMFMAC
414 # GCN-NEXT: S_NOP 7
415 # GCN-NEXT: S_NOP 2
416 # GCN-NEXT: V_MFMA
417 name:            smfmac32x32_write_agpr_mfma_srca_read_overlap
418 body:             |
419   bb.0:
420     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_SMFMAC_I32_32X32X32_I8_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, implicit $mode, implicit $exec
421     $agpr20_agpr21_agpr22_agpr23 = V_MFMA_F32_4X4X1F32_e64 $agpr1, $vgpr0, $agpr20_agpr21_agpr22_agpr23, 0, 0, 0, implicit $mode, implicit $exec
423 # GCN-LABEL: name: smfmac32x32_write_agpr_smfmac_srcc_read_overlap
424 # GCN:      V_SMFMAC
425 # GCN-NEXT: S_NOP 7
426 # GCN-NEXT: S_NOP 2
427 # GCN-NEXT: V_SMFMAC
428 name:            smfmac32x32_write_agpr_smfmac_srcc_read_overlap
429 body:             |
430   bb.0:
431     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_SMFMAC_I32_32X32X32_I8_e64 $agpr0_agpr1, $agpr2_agpr3_agpr4_agpr5, $vgpr2, 0, 0, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, implicit $mode, implicit $exec
432     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_SMFMAC_I32_32X32X32_I8_e64 $agpr0_agpr1, $agpr2_agpr3_agpr4_agpr5, $vgpr2, 0, 0, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, implicit $mode, implicit $exec
434 # GCN-LABEL: name: xdl_sgemm32x32_mfma_write_agpr_mfma_srca_read_overlap
435 # GCN:      V_MFMA
436 # GCN-NEXT: S_NOP 7
437 # GCN-NEXT: S_NOP 7
438 # GCN-NEXT: S_NOP 2
439 # GCN-NEXT: V_MFMA
440 name:            xdl_sgemm32x32_mfma_write_agpr_mfma_srca_read_overlap
441 body:             |
442   bb.0:
443     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17_agpr18_agpr19_agpr20_agpr21_agpr22_agpr23_agpr24_agpr25_agpr26_agpr27_agpr28_agpr29_agpr30_agpr31 = V_MFMA_F32_32X32X4F16_e64 $vgpr26_vgpr27, $vgpr28_vgpr29, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17_agpr18_agpr19_agpr20_agpr21_agpr22_agpr23_agpr24_agpr25_agpr26_agpr27_agpr28_agpr29_agpr30_agpr31, 0, 0, 0, implicit $mode, implicit $exec
444     $agpr20_agpr21_agpr22_agpr23 = V_MFMA_F32_4X4X1F32_e64 $agpr1, $vgpr0, $agpr20_agpr21_agpr22_agpr23, 0, 0, 0, implicit $mode, implicit $exec
446 # GCN-LABEL: name: nonxdl_sgemm32x32_mfma_write_agpr_mfma_srca_read_overlap
447 # GCN:      V_MFMA
448 # GCN-NEXT: S_NOP 7
449 # GCN-NEXT: S_NOP 7
450 # GCN-NEXT: S_NOP 1
451 # GCN-NEXT: V_MFMA
452 name:            nonxdl_sgemm32x32_mfma_write_agpr_mfma_srca_read_overlap
453 body:             |
454   bb.0:
455     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17_agpr18_agpr19_agpr20_agpr21_agpr22_agpr23_agpr24_agpr25_agpr26_agpr27_agpr28_agpr29_agpr30_agpr31 = V_MFMA_F32_32X32X1F32_e64 $vgpr26, $vgpr28, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17_agpr18_agpr19_agpr20_agpr21_agpr22_agpr23_agpr24_agpr25_agpr26_agpr27_agpr28_agpr29_agpr30_agpr31, 0, 0, 0, implicit $mode, implicit $exec
456     $agpr120_agpr121_agpr122_agpr123 = V_MFMA_F32_4X4X1F32_e64 $agpr1, $vgpr0, $agpr120_agpr121_agpr122_agpr123, 0, 0, 0, implicit $mode, implicit $exec
458 # GCN-LABEL: name: xdl_sgemm4x4_mfma_write_vgpr_mfma_srca_read_overlap
459 # GCN:      V_MFMA
460 # GCN-NEXT: S_NOP 4
461 # GCN-NEXT: V_MFMA
462 name:            xdl_sgemm4x4_mfma_write_vgpr_mfma_srca_read_overlap
463 body:             |
464   bb.0:
465     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_4X4X4I8_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
466     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_I32_4X4X4I8_e64 $vgpr0, $agpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
468 # GCN-LABEL: name: xdl_sgemm4x4_mfma_write_vgpr_dmfma4x4_srca_read_overlap
469 # GCN:      V_MFMA
470 # GCN-NEXT: S_NOP 4
471 # GCN-NEXT: V_MFMA
472 name:            xdl_sgemm4x4_mfma_write_vgpr_dmfma4x4_srca_read_overlap
473 body:             |
474   bb.0:
475     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_4X4X4I8_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
476     $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr4_vgpr5, $vgpr4_vgpr5, 0, 0, 0, implicit $mode, implicit $exec
478 # GCN-LABEL: name: xdl_sgemm4x4_mfma_write_vgpr_dmfma16x16_srca_read_overlap
479 # GCN:      V_MFMA
480 # GCN-NEXT: S_NOP 4
481 # GCN-NEXT: V_MFMA
482 name:            xdl_sgemm4x4_mfma_write_vgpr_dmfma16x16_srca_read_overlap
483 body:             |
484   bb.0:
485     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_4X4X4I8_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
486     $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr4_vgpr5, $vgpr4_vgpr5, 0, 0, 0, implicit $mode, implicit $exec
488 # GCN-LABEL: name: xdl_sgemm4x4_mfma_write_vgpr_smfmac_srca_read_overlap
489 # GCN:      V_MFMA
490 # GCN-NEXT: S_NOP 4
491 # GCN-NEXT: V_SMFMAC
492 name:            xdl_sgemm4x4_mfma_write_vgpr_smfmac_srca_read_overlap
493 body:             |
494   bb.0:
495     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_4X4X4I8_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
496     $agpr0_agpr1_agpr2_agpr3 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr0_vgpr1, $vgpr12_vgpr13_vgpr14_vgpr15, $vgpr32, 0, 0, $agpr0_agpr1_agpr2_agpr3, implicit $mode, implicit $exec
498 # GCN-LABEL: name: dgemm4x4_mfma_write_vgpr_mfma_srca_read_overlap
499 # GCN:      V_MFMA
500 # GCN-NEXT: S_NOP 5
501 # GCN-NEXT: V_MFMA
502 name:            dgemm4x4_mfma_write_vgpr_mfma_srca_read_overlap
503 body:             |
504   bb.0:
505     $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec
506     $vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr2_vgpr3, $vgpr10_vgpr11, $vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, 0, implicit $mode, implicit $exec
508 # GCN-LABEL: name: dgemm16x16_mfma_write_vgpr_mfma_srca_read_overlap
509 # GCN:      V_MFMA
510 # GCN-NEXT: S_NOP 7
511 # GCN-NEXT: S_NOP 2
512 # GCN-NEXT: V_MFMA
513 name:            dgemm16x16_mfma_write_vgpr_mfma_srca_read_overlap
514 body:             |
515   bb.0:
516     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, 0, implicit $mode, implicit $exec
517     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr10_vgpr11, $vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, 0, implicit $mode, implicit $exec
519 # GCN-LABEL: name: dgemm4x4_mfma_write_vgpr_sgemm_mfma_srca_read_overlap
520 # GCN:      V_MFMA
521 # GCN-NEXT: S_NOP 5
522 # GCN-NEXT: V_MFMA
523 name:            dgemm4x4_mfma_write_vgpr_sgemm_mfma_srca_read_overlap
524 body:             |
525   bb.0:
526     $vgpr4_vgpr5 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec
527     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr4, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
529 # GCN-LABEL: name: dgemm16x16_mfma_write_vgpr_sgemm_mfma_srca_read_overlap
530 # GCN:      V_MFMA
531 # GCN-NEXT: S_NOP 7
532 # GCN-NEXT: S_NOP 2
533 # GCN-NEXT: V_MFMA
534 name:            dgemm16x16_mfma_write_vgpr_sgemm_mfma_srca_read_overlap
535 body:             |
536   bb.0:
537     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, 0, implicit $mode, implicit $exec
538     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr4, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
540 # GCN-LABEL: name: xdl_sgemm4x4_mfma_write_vgpr_dgemm_mfma_srca_read_overlap
541 # GCN:      V_MFMA
542 # GCN-NEXT: S_NOP 4
543 # GCN-NEXT: V_MFMA
544 name:            xdl_sgemm4x4_mfma_write_vgpr_dgemm_mfma_srca_read_overlap
545 body:             |
546   bb.0:
547     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_4X4X4I8_vgprcd_e64 $vgpr4, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
548     $vgpr4_vgpr5 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr4_vgpr5, $vgpr4_vgpr5, 0, 0, 0, implicit $mode, implicit $exec
550 # GCN-LABEL: name: xdl_sgemm4x4_mfma_write_agpr_mfma_srcb_read_overlap
551 # GCN:      V_MFMA
552 # GCN-NEXT: S_NOP 4
553 # GCN-NEXT: V_MFMA
554 name:            xdl_sgemm4x4_mfma_write_agpr_mfma_srcb_read_overlap
555 body:             |
556   bb.0:
557     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_I32_4X4X4I8_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
558     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $vgpr1, $agpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
560 # GCN-LABEL: name: xdl_sgemm4x4_mfma_write_vgpr_mfma_srcb_read_overlap
561 # GCN:      V_MFMA
562 # GCN-NEXT: S_NOP 4
563 # GCN-NEXT: V_MFMA
564 name:            xdl_sgemm4x4_mfma_write_vgpr_mfma_srcb_read_overlap
565 body:             |
566   bb.0:
567     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_4X4X4I8_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
568     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $agpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
570 # GCN-LABEL: name: dgemm4x4_mfma_write_vgpr_mfma_srcb_read_overlap
571 # GCN:      V_MFMA
572 # GCN-NEXT: S_NOP 5
573 # GCN-NEXT: V_MFMA
574 name:            dgemm4x4_mfma_write_vgpr_mfma_srcb_read_overlap
575 body:             |
576   bb.0:
577     $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec
578     $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec
580 # GCN-LABEL: name: dgemm4x4_mfma_write_vgpr_smfmac_srcb_read_overlap
581 # GCN:      V_MFMA
582 # GCN-NEXT: S_NOP 5
583 # GCN-NEXT: V_SMFMAC
584 name:            dgemm4x4_mfma_write_vgpr_smfmac_srcb_read_overlap
585 body:             |
586   bb.0:
587     $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec
588     $agpr0_agpr1_agpr2_agpr3 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr10_vgpr11, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $agpr0_agpr1_agpr2_agpr3, implicit $mode, implicit $exec
590 # GCN-LABEL: name: dgemm4x4_mfma_write_vgpr_smfmac_srcc_read_overlap
591 # GCN:      V_MFMA
592 # GCN-NEXT: S_NOP 5
593 # GCN-NEXT: V_SMFMAC
594 name:            dgemm4x4_mfma_write_vgpr_smfmac_srcc_read_overlap
595 body:             |
596   bb.0:
597     $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec
598     $agpr0_agpr1_agpr2_agpr3 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr10_vgpr11, $vgpr12_vgpr13_vgpr14_vgpr15, $vgpr2, 0, 0, $agpr0_agpr1_agpr2_agpr3, implicit $mode, implicit $exec
600 # GCN-LABEL: name: dgemm16x16_mfma_write_vgpr_mfma_srcb_read_overlap
601 # GCN:      V_MFMA
602 # GCN-NEXT: S_NOP 7
603 # GCN-NEXT: S_NOP 2
604 # GCN-NEXT: V_MFMA
605 name:            dgemm16x16_mfma_write_vgpr_mfma_srcb_read_overlap
606 body:             |
607   bb.0:
608     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, 0, implicit $mode, implicit $exec
609     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr0_vgpr1, $vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, 0, implicit $mode, implicit $exec
611 # GCN-LABEL: name: dgemm16x16_mfma_write_vgpr_smfmac_srcb_read_overlap
612 # GCN:      V_MFMA
613 # GCN-NEXT: S_NOP 7
614 # GCN-NEXT: S_NOP 2
615 # GCN-NEXT: V_SMFMAC
616 name:            dgemm16x16_mfma_write_vgpr_smfmac_srcb_read_overlap
617 body:             |
618   bb.0:
619     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, 0, implicit $mode, implicit $exec
620     $agpr0_agpr1_agpr2_agpr3 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr10_vgpr11, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $agpr0_agpr1_agpr2_agpr3, implicit $mode, implicit $exec
622 # GCN-LABEL: name: dgemm16x16_mfma_write_vgpr_smfmac_srcc_read_overlap
623 # GCN:      V_MFMA
624 # GCN-NEXT: S_NOP 7
625 # GCN-NEXT: S_NOP 2
626 # GCN-NEXT: V_SMFMAC
627 name:            dgemm16x16_mfma_write_vgpr_smfmac_srcc_read_overlap
628 body:             |
629   bb.0:
630     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, 0, implicit $mode, implicit $exec
631     $agpr0_agpr1_agpr2_agpr3 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr10_vgpr11, $vgpr12_vgpr13_vgpr14_vgpr15, $vgpr2, 0, 0, $agpr0_agpr1_agpr2_agpr3, implicit $mode, implicit $exec
633 # GCN-LABEL: name: xdl_sgemm4x4_mfma_write_vgpr_smfmac_srcc_read_overlap
634 # GCN:      V_MFMA
635 # GCN-NEXT: S_NOP 4
636 # GCN-NEXT: V_SMFMAC
637 name:            xdl_sgemm4x4_mfma_write_vgpr_smfmac_srcc_read_overlap
638 body:             |
639   bb.0:
640     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_4X4X4I8_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
641     $agpr0_agpr1_agpr2_agpr3 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr10_vgpr11, $vgpr12_vgpr13_vgpr14_vgpr15, $vgpr1, 0, 0, $agpr0_agpr1_agpr2_agpr3, implicit $mode, implicit $exec
643 # GCN-LABEL: name: xdl_smfma4x4_write_vgpr_vm_read
644 # GCN:      V_MFMA
645 # GCN-NEXT: S_NOP 4
646 # GCN-NEXT: BUFFER_STORE_DWORD
647 name:            xdl_smfma4x4_write_vgpr_vm_read
648 body:             |
649   bb.0:
650     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_4X4X4I8_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
651     BUFFER_STORE_DWORD_OFFSET $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $mode, implicit $exec
653 # GCN-LABEL: name: xdl_smfma4x4_write_vgpr_flat_read
654 # GCN:      V_MFMA
655 # GCN-NEXT: S_NOP 4
656 # GCN-NEXT: FLAT_STORE_DWORD
657 name:            xdl_smfma4x4_write_vgpr_flat_read
658 body:             |
659   bb.0:
660     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_4X4X4I8_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
661     FLAT_STORE_DWORD $vgpr0_vgpr1, $vgpr4, 0, 0, implicit $mode, implicit $exec, implicit $flat_scr
663 # GCN-LABEL: name: xdl_smfma4x4_write_vgpr_lds_read
664 # GCN:      V_MFMA
665 # GCN-NEXT: S_NOP 4
666 # GCN-NEXT: DS_WRITE_B32
667 name:            xdl_smfma4x4_write_vgpr_lds_read
668 body:             |
669   bb.0:
670     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_4X4X4I8_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
671     DS_WRITE_B32 $vgpr0, $vgpr4, 0, 0, implicit $m0, implicit $mode, implicit $exec
673 # GCN-LABEL: name: xdl_smfma4x4_write_vgpr_exp_read
674 # GCN:      V_MFMA
675 # GCN-NEXT: S_NOP 4
676 # GCN-NEXT: EXP_DONE
677 name:            xdl_smfma4x4_write_vgpr_exp_read
678 body:             |
679   bb.0:
680     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_4X4X4I8_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
681     EXP_DONE 12, $vgpr4, $vgpr0, $vgpr0, $vgpr0, 0, 0, 15, implicit $exec
683 # GCN-LABEL: name: smfmac16x16_write_vgpr_flat_read
684 # GCN:      V_SMFMAC
685 # GCN-NEXT: S_NOP 6
686 # GCN-NEXT: FLAT_STORE_DWORD
687 name:            smfmac16x16_write_vgpr_flat_read
688 body:             |
689   bb.0:
690     $vgpr0_vgpr1_vgpr2_vgpr3 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $vgpr0_vgpr1_vgpr2_vgpr3, implicit $mode, implicit $exec
691     FLAT_STORE_DWORD $vgpr16_vgpr17, $vgpr1, 0, 0, implicit $mode, implicit $exec, implicit $flat_scr
693 # GCN-LABEL: name: xdl_smfma16x16_write_vgpr_flat_read
694 # GCN:      V_MFMA
695 # GCN-NEXT: S_NOP 7
696 # GCN-NEXT: S_NOP 2
697 # GCN-NEXT: FLAT_STORE_DWORD
698 name:            xdl_smfma16x16_write_vgpr_flat_read
699 body:             |
700   bb.0:
701     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_I32_16X16X4I8_vgprcd_e64 $vgpr16, $vgpr17, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
702     FLAT_STORE_DWORD $vgpr16_vgpr17, $vgpr1, 0, 0, implicit $mode, implicit $exec, implicit $flat_scr
704 # GCN-LABEL: name: smfmac32x32_write_vgpr_flat_read
705 # GCN:      V_SMFMAC
706 # GCN-NEXT: S_NOP 7
707 # GCN-NEXT: S_NOP 2
708 # GCN-NEXT: FLAT_STORE_DWORD
709 name:            smfmac32x32_write_vgpr_flat_read
710 body:             |
711   bb.0:
712     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_SMFMAC_I32_32X32X32_I8_e64 $agpr0_agpr1, $agpr2_agpr3_agpr4_agpr5, $vgpr2, 0, 0, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, implicit $mode, implicit $exec
713     FLAT_STORE_DWORD $vgpr16_vgpr17, $vgpr1, 0, 0, implicit $mode, implicit $exec, implicit $flat_scr
715 # GCN-LABEL: name: xdl_smfma32x32_write_vgpr_flat_read
716 # GCN:      V_MFMA
717 # GCN-NEXT: S_NOP 7
718 # GCN-NEXT: S_NOP 7
719 # GCN-NEXT: S_NOP 2
720 # GCN-NEXT: FLAT_STORE_DWORD
721 name:            xdl_smfma32x32_write_vgpr_flat_read
722 body:             |
723   bb.0:
724     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17_agpr18_agpr19_agpr20_agpr21_agpr22_agpr23_agpr24_agpr25_agpr26_agpr27_agpr28_agpr29_agpr30_agpr31 = V_MFMA_F32_32X32X4F16_e64 $vgpr26_vgpr27, $vgpr28_vgpr29, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17_agpr18_agpr19_agpr20_agpr21_agpr22_agpr23_agpr24_agpr25_agpr26_agpr27_agpr28_agpr29_agpr30_agpr31, 0, 0, 0, implicit $mode, implicit $exec
725     FLAT_STORE_DWORD $vgpr16_vgpr17, $agpr1, 0, 0, implicit $mode, implicit $exec, implicit $flat_scr
727 # GCN-LABEL: name: dmfma4x4_write_vgpr_flat_read_overlap
728 # GCN:      V_MFMA
729 # GCN-NEXT: S_NOP 7
730 # GCN-NEXT: S_NOP 0
731 # GCN-NEXT: FLAT_STORE_DWORD
732 name:            dmfma4x4_write_vgpr_flat_read_overlap
733 body:             |
734   bb.0:
735     $vgpr4_vgpr5 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec
736     FLAT_STORE_DWORD $vgpr0_vgpr1, $vgpr5, 0, 0, implicit $mode, implicit $exec, implicit $flat_scr
738 # GCN-LABEL: name: dmfma4x4_write_vgpr_flat_read_full
739 # GCN:      V_MFMA
740 # GCN-NEXT: S_NOP 7
741 # GCN-NEXT: S_NOP 0
742 # GCN-NEXT: FLAT_STORE_DWORD
743 name:            dmfma4x4_write_vgpr_flat_read_full
744 body:             |
745   bb.0:
746     $vgpr4_vgpr5 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec
747     FLAT_STORE_DWORDX2 $vgpr0_vgpr1, $vgpr4_vgpr5, 0, 0, implicit $mode, implicit $exec, implicit $flat_scr
749 # GCN-LABEL: name: dmfma16x16_write_vgpr_flat_read
750 # GCN:      V_MFMA
751 # GCN-NEXT: S_NOP 7
752 # GCN-NEXT: S_NOP 7
753 # GCN-NEXT: S_NOP 1
754 # GCN-NEXT: FLAT_STORE_DWORD
755 name:            dmfma16x16_write_vgpr_flat_read
756 body:             |
757   bb.0:
758     $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec
759     FLAT_STORE_DWORD $vgpr0_vgpr1, $vgpr4, 0, 0, implicit $mode, implicit $exec, implicit $flat_scr
761 # GCN-LABEL: name: xdl_smfma4x4_write_vgpr_valu_read
762 # GCN:      V_MFMA
763 # GCN-NEXT: S_NOP 4
764 # GCN-NEXT: V_MOV_B32
765 name:            xdl_smfma4x4_write_vgpr_valu_read
766 body:             |
767   bb.0:
768     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_4X4X4I8_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
769     $vgpr4 = V_MOV_B32_e32 $vgpr0, implicit $mode, implicit $exec
771 # GCN-LABEL: name: xdl_smfma16x16_write_vgpr_valu_read
772 # GCN:      V_MFMA
773 # GCN-NEXT: S_NOP 7
774 # GCN-NEXT: S_NOP 2
775 # GCN-NEXT: V_MOV_B32
776 name:            xdl_smfma16x16_write_vgpr_valu_read
777 body:             |
778   bb.0:
779     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_I32_16X16X4I8_vgprcd_e64 $vgpr16, $vgpr17, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
780     $vgpr16 = V_MOV_B32_e32 $vgpr0, implicit $mode, implicit $exec
782 # GCN-LABEL: name: xdl_smfma32x32_write_vgpr_valu_read
783 # GCN:      V_MFMA
784 # GCN-NEXT: S_NOP 7
785 # GCN-NEXT: S_NOP 7
786 # GCN-NEXT: S_NOP 2
787 # GCN-NEXT: V_MOV_B32
788 name:            xdl_smfma32x32_write_vgpr_valu_read
789 body:             |
790   bb.0:
791     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31 = V_MFMA_F32_32X32X4F16_vgprcd_e64 $vgpr126_vgpr127, $vgpr128_vgpr129, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 0, 0, 0, implicit $mode, implicit $exec
792     $vgpr16 = V_MOV_B32_e32 $vgpr0, implicit $mode, implicit $exec
794 # GCN-LABEL: name: dmfma4x4_write_vgpr_valu_read
795 # GCN:      V_MFMA
796 # GCN-NEXT: S_NOP 5
797 # GCN-NEXT: V_MOV_B32
798 name:            dmfma4x4_write_vgpr_valu_read
799 body:             |
800   bb.0:
801     $vgpr4_vgpr5 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec
802     $vgpr6 = V_MOV_B32_e32 $vgpr5, implicit $exec
804 # GCN-LABEL: name: dmfma16x16_write_vgpr_valu_read
805 # GCN:      V_MFMA
806 # GCN-NEXT: S_NOP 7
807 # GCN-NEXT: S_NOP 2
808 # GCN-NEXT: V_MOV_B32
809 name:            dmfma16x16_write_vgpr_valu_read
810 body:             |
811   bb.0:
812     $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec
813     $vgpr12 = V_MOV_B32_e32 $vgpr4, implicit $exec
815 # GCN-LABEL: name: xdl_smfma4x4_write_vgpr_accv_read
816 # GCN:      V_MFMA
817 # GCN-NEXT: S_NOP 4
818 # GCN-NEXT: V_ACCVGPR_WRITE_B32_e64
819 name:            xdl_smfma4x4_write_vgpr_accv_read
820 body:             |
821   bb.0:
822     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_4X4X4I8_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
823     $agpr0 = V_ACCVGPR_WRITE_B32_e64 $vgpr0, implicit $mode, implicit $exec
825 # GCN-LABEL: name: xdl_smfma16x16_write_vgpr_accv_read
826 # GCN:      V_MFMA
827 # GCN-NEXT: S_NOP 7
828 # GCN-NEXT: S_NOP 2
829 # GCN-NEXT: V_ACCVGPR_WRITE_B32_e64
830 name:            xdl_smfma16x16_write_vgpr_accv_read
831 body:             |
832   bb.0:
833     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_I32_16X16X4I8_vgprcd_e64 $vgpr16, $vgpr17, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
834     $agpr0 = V_ACCVGPR_WRITE_B32_e64 $vgpr0, implicit $mode, implicit $exec
836 # GCN-LABEL: name: xdl_smfma32x32_write_vgpr_accv_read
837 # GCN:      V_MFMA
838 # GCN-NEXT: S_NOP 7
839 # GCN-NEXT: S_NOP 7
840 # GCN-NEXT: S_NOP 2
841 # GCN-NEXT: V_ACCVGPR_WRITE_B32_e64
842 name:            xdl_smfma32x32_write_vgpr_accv_read
843 body:             |
844   bb.0:
845     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31 = V_MFMA_F32_32X32X4F16_vgprcd_e64 $vgpr126_vgpr127, $vgpr128_vgpr129, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 0, 0, 0, implicit $mode, implicit $exec
846     $agpr0 = V_ACCVGPR_WRITE_B32_e64 $vgpr0, implicit $mode, implicit $exec
848 # GCN-LABEL: name: xdl_smfma4x4_write_vgpr_dot_read
849 # GCN:      V_MFMA
850 # GCN-NEXT: S_NOP 4
851 # GCN-NEXT: V_DOT
852 name:            xdl_smfma4x4_write_vgpr_dot_read
853 body:             |
854   bb.0:
855     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_4X4X4I8_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
856     $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec
858 # GCN-LABEL: name: dmfma4x4_write_vgpr_dot_read
859 # GCN:      V_MFMA
860 # GCN-NEXT: S_NOP 5
861 # GCN-NEXT: V_DOT
862 name:            dmfma4x4_write_vgpr_dot_read
863 body:             |
864   bb.0:
865     $vgpr4_vgpr5 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec
866     $vgpr1 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr5, $vgpr1, implicit $exec
868 # GCN-LABEL: name: dmfma16x16_write_vgpr_dot_read
869 # GCN:      V_MFMA
870 # GCN-NEXT: S_NOP 7
871 # GCN-NEXT: S_NOP 2
872 # GCN-NEXT: V_DOT
873 name:            dmfma16x16_write_vgpr_dot_read
874 body:             |
875   bb.0:
876     $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec
877     $vgpr1 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr4, $vgpr1, implicit $exec
879 # GCN-LABEL: name: xdl_smfma4x4_write_vgpr_valu_write
880 # GCN:      V_MFMA
881 # GCN-NEXT: S_NOP 4
882 # GCN-NEXT: V_MOV_B32
883 name:            xdl_smfma4x4_write_vgpr_valu_write
884 body:             |
885   bb.0:
886     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_4X4X4I8_vgprcd_e64 $vgpr4, $vgpr0, $vgpr6_vgpr7_vgpr8_vgpr9, 0, 0, 0, implicit $mode, implicit $exec
887     $vgpr1 = V_MOV_B32_e32 0, implicit $mode, implicit $exec
889 # GCN-LABEL: name: xdl_smfma16x16_write_vgpr_valu_write
890 # GCN:      V_MFMA
891 # GCN-NEXT: S_NOP 7
892 # GCN-NEXT: S_NOP 2
893 # GCN-NEXT: V_MOV_B32
894 name:            xdl_smfma16x16_write_vgpr_valu_write
895 body:             |
896   bb.0:
897     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_I32_16X16X4I8_vgprcd_e64 $vgpr16, $vgpr17, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
898     $vgpr1 = V_MOV_B32_e32 0, implicit $mode, implicit $exec
900 # GCN-LABEL: name: xdl_smfma32x32_write_vgpr_valu_write
901 # GCN:      V_MFMA
902 # GCN-NEXT: S_NOP 7
903 # GCN-NEXT: S_NOP 7
904 # GCN-NEXT: S_NOP 2
905 # GCN-NEXT: V_MOV_B32
906 name:            xdl_smfma32x32_write_vgpr_valu_write
907 body:             |
908   bb.0:
909     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31 = V_MFMA_F32_32X32X4F16_vgprcd_e64 $vgpr126_vgpr127, $vgpr128_vgpr129, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 0, 0, 0, implicit $mode, implicit $exec
910     $vgpr1 = V_MOV_B32_e32 0, implicit $mode, implicit $exec
912 # GCN-LABEL: name: xdl_smfma4x4_write_vgpr_valu_f16_write
913 # GCN:      V_MFMA
914 # GCN-NEXT: S_NOP 4
915 # GCN-NEXT: V_FMA_F16_e64
916 name:            xdl_smfma4x4_write_vgpr_valu_f16_write
917 body:             |
918   bb.0:
919     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_4X4X4I8_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
920     $vgpr1 = V_FMA_F16_e64 0, 0, 0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec
922 # GCN-LABEL: name: xdl_smfma16x16_write_vgpr_valu_f16_write
923 # GCN:      V_MFMA
924 # GCN-NEXT: S_NOP 7
925 # GCN-NEXT: S_NOP 2
926 # GCN-NEXT: V_FMA_F16_e64
927 name:            xdl_smfma16x16_write_vgpr_valu_f16_write
928 body:             |
929   bb.0:
930     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_I32_16X16X4I8_vgprcd_e64 $vgpr16, $vgpr17, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
931     $vgpr1 = V_FMA_F16_e64 0, 0, 0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec
933 # GCN-LABEL: name: xdl_smfma32x32_write_vgpr_valu_f16_write
934 # GCN:      V_MFMA
935 # GCN-NEXT: S_NOP 7
936 # GCN-NEXT: S_NOP 7
937 # GCN-NEXT: S_NOP 2
938 # GCN-NEXT: V_FMA_F16_e64
939 name:            xdl_smfma32x32_write_vgpr_valu_f16_write
940 body:             |
941   bb.0:
942     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31 = V_MFMA_F32_32X32X4F16_vgprcd_e64 $vgpr126_vgpr127, $vgpr128_vgpr129, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 0, 0, 0, implicit $mode, implicit $exec
943     $vgpr1 = V_FMA_F16_e64 0, 0, 0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec
945 # GCN-LABEL: name: xdl_smfma4x4_write_vgpr_valu_sdwa_write
946 # GCN:      V_MFMA
947 # GCN-NEXT: S_NOP 4
948 # GCN-NEXT: V_MOV_B32_sdwa
949 name:            xdl_smfma4x4_write_vgpr_valu_sdwa_write
950 body:             |
951   bb.0:
952     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_4X4X4I8_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
953     $vgpr1 = V_MOV_B32_sdwa 0, $vgpr16, 0, 5, 2, 4, implicit $exec, implicit $vgpr1(tied-def 0)
955 # GCN-LABEL: name: xdl_smfma16x16_write_vgpr_valu_sdwa_write
956 # GCN:      V_MFMA
957 # GCN-NEXT: S_NOP 7
958 # GCN-NEXT: S_NOP 2
959 # GCN-NEXT: V_MOV_B32_sdwa
960 name:            xdl_smfma16x16_write_vgpr_valu_sdwa_write
961 body:             |
962   bb.0:
963     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_I32_16X16X4I8_vgprcd_e64 $vgpr16, $vgpr17, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
964     $vgpr1 = V_MOV_B32_sdwa 0, $vgpr16, 0, 5, 2, 4, implicit $exec, implicit $vgpr1(tied-def 0)
966 # GCN-LABEL: name: xdl_smfma32x32_write_vgpr_valu_sdwa_write
967 # GCN:      V_MFMA
968 # GCN-NEXT: S_NOP 7
969 # GCN-NEXT: S_NOP 7
970 # GCN-NEXT: S_NOP 2
971 # GCN-NEXT: V_MOV_B32_sdwa
972 name:            xdl_smfma32x32_write_vgpr_valu_sdwa_write
973 body:             |
974   bb.0:
975     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31 = V_MFMA_F32_32X32X4F16_vgprcd_e64 $vgpr126_vgpr127, $vgpr128_vgpr129, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 0, 0, 0, implicit $mode, implicit $exec
976     $vgpr1 = V_MOV_B32_sdwa 0, $vgpr16, 0, 5, 2, 4, implicit $exec, implicit $vgpr1(tied-def 0)
978 # GCN-LABEL: name: dmfma4x4_write_vgpr_valu_write
979 # GCN:      V_MFMA
980 # GCN-NEXT: S_NOP 5
981 # GCN-NEXT: V_MOV_B32
982 name:            dmfma4x4_write_vgpr_valu_write
983 body:             |
984   bb.0:
985     $vgpr4_vgpr5 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec
986     $vgpr4 = V_MOV_B32_e32 0, implicit $mode, implicit $exec
988 # GCN-LABEL: name: dmfma16x16_write_vgpr_valu_write
989 # GCN:      V_MFMA
990 # GCN-NEXT: S_NOP 7
991 # GCN-NEXT: S_NOP 2
992 # GCN-NEXT: V_MOV_B32
993 name:            dmfma16x16_write_vgpr_valu_write
994 body:             |
995   bb.0:
996     $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec
997     $vgpr3 = V_MOV_B32_e32 0, implicit $mode, implicit $exec
999 # GCN-LABEL: name: xdl_smfma4x4_write_vgpr_accv_write
1000 # GCN:      V_MFMA
1001 # GCN-NEXT: S_NOP 4
1002 # GCN-NEXT: V_ACCVGPR_READ_B32_e64
1003 name:            xdl_smfma4x4_write_vgpr_accv_write
1004 body:             |
1005   bb.0:
1006     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_4X4X4I8_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
1007     $vgpr1 = V_ACCVGPR_READ_B32_e64 $agpr0, implicit $mode, implicit $exec
1009 # GCN-LABEL: name: xdl_smfma4x4_write_vgpr_dot_write
1010 # GCN:      V_MFMA
1011 # GCN-NEXT: S_NOP 4
1012 # GCN-NEXT: V_DOT
1013 name:            xdl_smfma4x4_write_vgpr_dot_write
1014 body:             |
1015   bb.0:
1016     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_4X4X4I8_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
1017     $vgpr1 = V_DOT8_I32_I4 0, $vgpr4, 0, $vgpr4, 0, $vgpr4, 0, 0, 0, 0, 0, implicit $mode, implicit $exec
1019 # GCN-LABEL: name: nonxdl_smfma4x4_read_srcc_vgpr_valu_write
1020 # GCN:      V_MFMA
1021 # GCN-NEXT: V_MOV_B32
1022 name:            nonxdl_smfma4x4_read_srcc_vgpr_valu_write
1023 body:             |
1024   bb.0:
1025     $vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr8, $vgpr9, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
1026     $vgpr1 = V_MOV_B32_e32 0, implicit $mode, implicit $exec
1028 # GCN-LABEL: name: smfma16x16_read_srcc_vgpr_valu_write
1029 # GCN:      V_MFMA
1030 # GCN-NEXT: V_MOV_B32
1031 name:            smfma16x16_read_srcc_vgpr_valu_write
1032 body:             |
1033   bb.0:
1034     $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr18, $vgpr19, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
1035     $vgpr1 = V_MOV_B32_e32 0, implicit $mode, implicit $exec
1037 # GCN-LABEL: name: smfma32x32_read_srcc_vgpr_valu_write
1038 # GCN:      V_MFMA
1039 # GCN-NEXT: V_MOV_B32
1040 name:            smfma32x32_read_srcc_vgpr_valu_write
1041 body:             |
1042   bb.0:
1043     $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_F32_32X32X2F32_vgprcd_e64 $vgpr0, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
1044     $vgpr1 = V_MOV_B32_e32 0, implicit $mode, implicit $exec
1046 # GCN-LABEL: name: smfma4x4_read_srca_vgpr_valu_write
1047 # GCN:      V_MFMA
1048 # GCN-NEXT: V_MOV_B32
1049 name:            smfma4x4_read_srca_vgpr_valu_write
1050 body:             |
1051   bb.0:
1052     $vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr8, $vgpr9, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
1053     $vgpr8 = V_MOV_B32_e32 0, implicit $mode, implicit $exec
1055 # GCN-LABEL: name: smfma16x16_read_srca_vgpr_valu_write
1056 # GCN:      V_MFMA
1057 # GCN-NEXT: V_MOV_B32
1058 name:            smfma16x16_read_srca_vgpr_valu_write
1059 body:             |
1060   bb.0:
1061     $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr18, $vgpr19, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
1062     $vgpr18 = V_MOV_B32_e32 0, implicit $mode, implicit $exec
1064 # GCN-LABEL: name: smfma32x32_read_srca_vgpr_valu_write
1065 # GCN:      V_MFMA
1066 # GCN-NEXT: V_MOV_B32
1067 name:            smfma32x32_read_srca_vgpr_valu_write
1068 body:             |
1069   bb.0:
1070     $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_F32_32X32X2F32_vgprcd_e64 $vgpr18, $vgpr19, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
1071     $vgpr18 = V_MOV_B32_e32 0, implicit $mode, implicit $exec
1073 # GCN-LABEL: name: smfma4x4_read_srcb_vgpr_valu_write
1074 # GCN:      V_MFMA
1075 # GCN-NEXT: V_MOV_B32
1076 name:            smfma4x4_read_srcb_vgpr_valu_write
1077 body:             |
1078   bb.0:
1079     $vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr8, $vgpr9, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
1080     $vgpr9 = V_MOV_B32_e32 0, implicit $mode, implicit $exec
1082 # GCN-LABEL: name: smfma16x16_read_srcb_vgpr_valu_write
1083 # GCN:      V_MFMA
1084 # GCN-NEXT: V_MOV_B32
1085 name:            smfma16x16_read_srcb_vgpr_valu_write
1086 body:             |
1087   bb.0:
1088     $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr18, $vgpr19, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
1089     $vgpr19 = V_MOV_B32_e32 0, implicit $mode, implicit $exec
1091 # GCN-LABEL: name: smfma32x32_read_srcb_vgpr_valu_write
1092 # GCN:      V_MFMA
1093 # GCN-NEXT: V_MOV_B32
1094 name:            smfma32x32_read_srcb_vgpr_valu_write
1095 body:             |
1096   bb.0:
1097     $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_F32_32X32X2F32_vgprcd_e64 $vgpr18, $vgpr19, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
1098     $vgpr19 = V_MOV_B32_e32 0, implicit $mode, implicit $exec
1100 # GCN-LABEL: name: dmfma4x4_read_srcc_vgpr_valu_write
1101 # GCN:      V_MFMA
1102 # GCN-NEXT: V_MOV_B32
1103 name:            dmfma4x4_read_srcc_vgpr_valu_write
1104 body:             |
1105   bb.0:
1106     $vgpr4_vgpr5 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec
1107     $vgpr1 = V_MOV_B32_e32 0, implicit $mode, implicit $exec
1109 # GCN-LABEL: name: dmfma16x16_read_srcc_vgpr_valu_write
1110 # GCN:      V_MFMA
1111 # GCN-NEXT: V_MOV_B32
1112 name:            dmfma16x16_read_srcc_vgpr_valu_write
1113 body:             |
1114   bb.0:
1115     $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec
1116     $vgpr1 = V_MOV_B32_e32 0, implicit $mode, implicit $exec
1118 # GCN-LABEL: name: smfma16x16_read_srcc_vgpr_accv_write
1119 # GCN:      V_MFMA
1120 # GCN-NEXT: V_ACCVGPR_WRITE_B32_e64
1121 name:            smfma16x16_read_srcc_vgpr_accv_write
1122 body:             |
1123   bb.0:
1124     $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17 = V_MFMA_F32_16X16X1F32_e64 $agpr18, $agpr19, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $mode, implicit $exec
1125     $agpr1 = V_ACCVGPR_WRITE_B32_e64 0, implicit $mode, implicit $exec
1127 # GCN-LABEL: name: sgemm_to_fma64
1128 # GCN:      V_MFMA
1129 # GCN-NEXT: V_FMA_F64_e64
1130 name:            sgemm_to_fma64
1131 body:             |
1132   bb.0:
1133     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1134     $vgpr4_vgpr5 = V_FMA_F64_e64 0, $vgpr4_vgpr5, 0, $vgpr4_vgpr5, 0, $vgpr4_vgpr5, 0, 0, implicit $mode, implicit $exec
1136 # GCN-LABEL: name: dgemm_to_fma64
1137 # GCN:      V_MFMA
1138 # GCN-NEXT: S_NOP 1
1139 # GCN-NEXT: V_FMA_F64_e64
1140 name:            dgemm_to_fma64
1141 body:             |
1142   bb.0:
1143     $vgpr0_vgpr1 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec
1144     $vgpr4_vgpr5 = V_FMA_F64_e64 0, $vgpr4_vgpr5, 0, $vgpr4_vgpr5, 0, $vgpr4_vgpr5, 0, 0, implicit $mode, implicit $exec
1146 # GCN-LABEL: name: dgemm_to_fmac64
1147 # GCN:      V_MFMA
1148 # GCN-NEXT: S_NOP 1
1149 # GCN-NEXT: V_FMAC_F64
1150 name:            dgemm_to_fmac64
1151 body:             |
1152   bb.0:
1153     $vgpr0_vgpr1 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec
1154     $vgpr4_vgpr5 = V_FMAC_F64_e32 $vgpr4_vgpr5, $vgpr4_vgpr5, $vgpr4_vgpr5, implicit $mode, implicit $exec
1156 # GCN-LABEL: name: flat_store_data_agpr_overwritten
1157 # GCN:      FLAT_STORE_DWORDX4
1158 # GCN-NEXT: S_NOP 1
1159 # GCN-NEXT: V_ACCVGPR_WRITE_B32_e64
1160 name: flat_store_data_agpr_overwritten
1161 body: |
1162   bb.0:
1163     FLAT_STORE_DWORDX4 $vgpr4_vgpr5, $agpr0_agpr1_agpr2_agpr3, 0, 0, implicit $mode, implicit $exec, implicit $flat_scr
1164     $agpr0 = V_ACCVGPR_WRITE_B32_e64 0, implicit $mode, implicit $exec
1166 # GCN-LABEL: name: dot_write_vgpr_accv_read
1167 # GCN:      V_DOT
1168 # GCN-NEXT: S_NOP 2
1169 # GCN-NEXT: V_ACCVGPR_WRITE_B32_e64
1170 name:            dot_write_vgpr_accv_read
1171 body:             |
1172   bb.0:
1173     $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec
1174     $agpr5 = V_ACCVGPR_WRITE_B32_e64 $vgpr4, implicit $exec
1176 # GCN-LABEL: name: valu_write_vgpr_dot_read
1177 # GCN:      V_MOV_B32
1178 # GCN-NEXT: V_DOT
1179 name:            valu_write_vgpr_dot_read
1180 body:             |
1181   bb.0:
1182     $vgpr0 = V_MOV_B32_e32 $vgpr1, implicit $exec
1183     $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec
1185 # GCN-LABEL: name: accv_write_vgpr_dot_read
1186 # GCN:      V_ACCVGPR_READ
1187 # GCN-NEXT: V_DOT
1188 name:            accv_write_vgpr_dot_read
1189 body:             |
1190   bb.0:
1191     $vgpr0 = V_ACCVGPR_READ_B32_e64 $agpr1, implicit $exec
1192     $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec
1194 # GCN-LABEL: name: dot_write_vgpr_same_dot_read_srcc
1195 # GCN:      V_DOT
1196 # GCN-NEXT: V_DOT
1197 name:            dot_write_vgpr_same_dot_read_srcc
1198 body:             |
1199   bb.0:
1200     $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec
1201     $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec
1203 # GCN-LABEL: name: dot_write_vgpr_different_dot_read_srcc
1204 # GCN:      V_DOT
1205 # GCN-NEXT: S_NOP 2
1206 # GCN-NEXT: V_DOT
1207 name:            dot_write_vgpr_different_dot_read_srcc
1208 body:             |
1209   bb.0:
1210     $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec
1211     $vgpr1 = V_DOT8_I32_I4 0, $vgpr0, 0, $vgpr0, 0, $vgpr4, 0, 0, 0, 0, 0, implicit $mode, implicit $exec
1213 # GCN-LABEL: name: dot_write_vgpr_different_dot_write
1214 # GCN:      V_DOT
1215 # GCN-NEXT: S_NOP 2
1216 # GCN-NEXT: V_DOT
1217 name:            dot_write_vgpr_different_dot_write
1218 body:             |
1219   bb.0:
1220     $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec
1221     $vgpr4 = V_DOT8_I32_I4 0, $vgpr0, 0, $vgpr0, 0, $vgpr0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec
1223 # GCN-LABEL: name: dot_write_vgpr_different_valu_read
1224 # GCN:      V_DOT
1225 # GCN-NEXT: S_NOP 2
1226 # GCN-NEXT: V_MOV_B32_e32
1227 name:            dot_write_vgpr_different_valu_read
1228 body:             |
1229   bb.0:
1230     $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec
1231     $vgpr0 = V_MOV_B32_e32 $vgpr4, implicit $exec
1233 # GCN-LABEL: name: dot_write_vgpr_different_valu_write
1234 # GCN:      V_DOT
1235 # GCN-NEXT: S_NOP 2
1236 # GCN-NEXT: V_MOV_B32_e32
1237 name:            dot_write_vgpr_different_valu_write
1238 body:             |
1239   bb.0:
1240     $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec
1241     $vgpr4 = V_MOV_B32_e32 1, implicit $exec
1243 # GCN-LABEL: name: dot_write_vgpr_same_dot_read_srca
1244 # GCN:      V_DOT
1245 # GCN-NEXT: S_NOP 2
1246 # GCN-NEXT: V_DOT
1247 name:            dot_write_vgpr_same_dot_read_srca
1248 body:             |
1249   bb.0:
1250     $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec
1251     $vgpr0 = V_DOT4C_I32_I8_e32 $vgpr4, $vgpr1, $vgpr0, implicit $mode, implicit $exec
1253 # GCN-LABEL: name: dot_write_vgpr_same_dot_read_srcb
1254 # GCN:      V_DOT
1255 # GCN-NEXT: S_NOP 2
1256 # GCN-NEXT: V_DOT
1257 name:            dot_write_vgpr_same_dot_read_srcb
1258 body:             |
1259   bb.0:
1260     $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec
1261     $vgpr0 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr4, $vgpr0, implicit $mode, implicit $exec
1263 # GCN-LABEL: name: vcmpx_write_exec_mfma
1264 # GCN:      V_CMPX_EQ_I32_e32
1265 # GCN-NEXT: S_NOP 3
1266 # GCN-NEXT: V_MFMA
1267 name:            vcmpx_write_exec_mfma
1268 body:             |
1269   bb.0:
1270     implicit $exec, implicit $vcc = V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit $exec
1271     $agpr4_agpr5_agpr6_agpr7 = V_MFMA_F32_4X4X1F32_e64 killed $agpr8, killed $vgpr1, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1273 # GCN-LABEL: name: valu_write_agpr_dgemm_mfma_read
1274 # GCN:      V_ACCVGPR_WRITE_B32_e64
1275 # GCN:      V_ACCVGPR_WRITE_B32_e64
1276 # GCN-NEXT: S_NOP 1
1277 # GCN-NEXT: V_MFMA
1278 name:            valu_write_agpr_dgemm_mfma_read
1279 body:             |
1280   bb.0:
1281     $agpr0 = V_ACCVGPR_WRITE_B32_e64 1, implicit $exec
1282     $agpr1 = V_ACCVGPR_WRITE_B32_e64 1, implicit $exec
1283     $agpr2_agpr3 = V_MFMA_F64_4X4X4F64_e64 $agpr0_agpr1, $agpr0_agpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec
1285 # GCN-LABEL: name: dgemm16x16_mfma_write_agpr_mfma_read_same_agpr_as_srcc
1286 # GCN:      V_MFMA
1287 # GCN-NEXT: V_MFMA
1288 name:            dgemm16x16_mfma_write_agpr_mfma_read_same_agpr_as_srcc
1289 body:             |
1290   bb.0:
1291     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7 = V_MFMA_F64_16X16X4F64_e64 $agpr10_agpr11, $agpr10_agpr11, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, 0, 0, 0, implicit $mode, implicit $exec
1292     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7 = V_MFMA_F64_16X16X4F64_e64 $agpr10_agpr11, $agpr10_agpr11, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, 0, 0, 0, implicit $mode, implicit $exec
1294 # GCN-LABEL: name: dgemm4x4_mfma_write_agpr_mfma_read_same_agpr_as_srcc
1295 # GCN:      V_MFMA
1296 # GCN-NEXT: S_NOP 3
1297 # GCN-NEXT: V_MFMA
1298 name:            dgemm4x4_mfma_write_agpr_mfma_read_same_agpr_as_srcc
1299 body:             |
1300   bb.0:
1301     $agpr2_agpr3 = V_MFMA_F64_4X4X4F64_e64 $agpr0_agpr1, $vgpr0_vgpr1, $agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1302     $agpr2_agpr3 = V_MFMA_F64_4X4X4F64_e64 $agpr0_agpr1, $vgpr0_vgpr1, $agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1304 # GCN-LABEL: name: dgemm16x16_mfma_write_agpr_mfma_read_overlap
1305 # GCN:      V_MFMA
1306 # GCN-NEXT: S_NOP 7
1307 # GCN-NEXT: S_NOP 0
1308 # GCN-NEXT: V_MFMA
1309 name:            dgemm16x16_mfma_write_agpr_mfma_read_overlap
1310 body:             |
1311   bb.0:
1312     $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9 = V_MFMA_F64_16X16X4F64_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, 0, 0, 0, implicit $mode, implicit $exec
1313     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7 = V_MFMA_F64_16X16X4F64_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, 0, 0, 0, implicit $mode, implicit $exec
1315 # GCN-LABEL: name: dgemm4x4_mfma_write_agpr_mfma_read_overlap
1316 # GCN:      V_MFMA
1317 # GCN-NEXT: S_NOP 3
1318 # GCN-NEXT: V_MFMA
1319 name:            dgemm4x4_mfma_write_agpr_mfma_read_overlap
1320 body:             |
1321   bb.0:
1322     $agpr2_agpr3 = V_MFMA_F64_4X4X4F64_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec
1323     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7 = V_MFMA_F64_16X16X4F64_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, 0, 0, 0, implicit $mode, implicit $exec
1325 # GCN-LABEL: name: dgemm16x16_mfma_write_agpr_sgemm_mfma_read_overlap
1326 # GCN:      V_MFMA
1327 # GCN-NEXT: S_NOP 7
1328 # GCN-NEXT: S_NOP 0
1329 # GCN-NEXT: V_MFMA
1330 name:            dgemm16x16_mfma_write_agpr_sgemm_mfma_read_overlap
1331 body:             |
1332   bb.0:
1333     $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9 = V_MFMA_F64_16X16X4F64_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, 0, 0, 0, implicit $mode, implicit $exec
1334     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $vgpr10, $vgpr11, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1336 # GCN-LABEL: name: sgemm4x4_mfma_write_agpr_dgemm_mfma_read_overlap
1337 # GCN:      V_MFMA
1338 # GCN-NEXT: S_NOP 2
1339 # GCN-NEXT: V_MFMA
1340 name:            sgemm4x4_mfma_write_agpr_dgemm_mfma_read_overlap
1341 body:             |
1342   bb.0:
1343     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_I32_4X4X4I8_e64 $vgpr10, $vgpr11, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1344     $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9 = V_MFMA_F64_16X16X4F64_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, 0, 0, 0, implicit $mode, implicit $exec
1346 # GCN-LABEL: name: xdl_sgemm16x16_mfma_write_sgpr_dgemm_mfma_read_overlap
1347 # GCN:      V_MFMA
1348 # GCN-NEXT: S_NOP 7
1349 # GCN-NEXT: S_NOP 0
1350 # GCN-NEXT: V_MFMA
1351 name:            xdl_sgemm16x16_mfma_write_sgpr_dgemm_mfma_read_overlap
1352 body:             |
1353   bb.0:
1354     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_MFMA_I32_16X16X4I8_e64 $vgpr26, $vgpr27, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $mode, implicit $exec
1355     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7 = V_MFMA_F64_16X16X4F64_e64 $vgpr20_vgpr21, $vgpr20_vgpr21, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, 0, 0, 0, implicit $mode, implicit $exec
1357 # GCN-LABEL: name: xdl_sgemm32x32_mfma_write_agpr_dgemm_mfma_read_overlap
1358 # GCN:      V_MFMA
1359 # GCN-NEXT: S_NOP 7
1360 # GCN-NEXT: S_NOP 7
1361 # GCN-NEXT: S_NOP 0
1362 # GCN-NEXT: V_MFMA
1363 name:            xdl_sgemm32x32_mfma_write_agpr_dgemm_mfma_read_overlap
1364 body:             |
1365   bb.0:
1366     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17_agpr18_agpr19_agpr20_agpr21_agpr22_agpr23_agpr24_agpr25_agpr26_agpr27_agpr28_agpr29_agpr30_agpr31 = V_MFMA_F32_32X32X4F16_e64 $vgpr26_vgpr27, $vgpr28_vgpr29, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17_agpr18_agpr19_agpr20_agpr21_agpr22_agpr23_agpr24_agpr25_agpr26_agpr27_agpr28_agpr29_agpr30_agpr31, 0, 0, 0, implicit $mode, implicit $exec
1367     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7 = V_MFMA_F64_16X16X4F64_e64 $vgpr120_vgpr121, $vgpr120_vgpr121, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, 0, 0, 0, implicit $mode, implicit $exec
1369 # GCN-LABEL: name: xdl_sgemm4x4_mfma_write_agpr_dmfma4x4_srca_read_overlap
1370 # GCN:      V_MFMA
1371 # GCN-NEXT: S_NOP 4
1372 # GCN-NEXT: V_MFMA
1373 name:            xdl_sgemm4x4_mfma_write_agpr_dmfma4x4_srca_read_overlap
1374 body:             |
1375   bb.0:
1376     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_I32_4X4X4I8_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1377     $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $agpr0_agpr1, $vgpr4_vgpr5, $vgpr4_vgpr5, 0, 0, 0, implicit $mode, implicit $exec
1379 # GCN-LABEL: name: xdl_sgemm4x4_mfma_write_agpr_dmfma16x16_srca_read_overlap
1380 # GCN:      V_MFMA
1381 # GCN-NEXT: S_NOP 4
1382 # GCN-NEXT: V_MFMA
1383 name:            xdl_sgemm4x4_mfma_write_agpr_dmfma16x16_srca_read_overlap
1384 body:             |
1385   bb.0:
1386     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_I32_4X4X4I8_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1387     $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $agpr0_agpr1, $vgpr4_vgpr5, $vgpr4_vgpr5, 0, 0, 0, implicit $mode, implicit $exec
1389 # GCN-LABEL: name: dgemm4x4_mfma_write_agpr_mfma_srca_read_overlap
1390 # GCN:      V_MFMA
1391 # GCN-NEXT: S_NOP 5
1392 # GCN-NEXT: V_MFMA
1393 name:            dgemm4x4_mfma_write_agpr_mfma_srca_read_overlap
1394 body:             |
1395   bb.0:
1396     $agpr2_agpr3 = V_MFMA_F64_4X4X4F64_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec
1397     $vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $agpr2_agpr3, $vgpr10_vgpr11, $vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, 0, implicit $mode, implicit $exec
1399 # GCN-LABEL: name: dgemm16x16_mfma_write_agpr_mfma_srca_read_overlap
1400 # GCN:      V_MFMA
1401 # GCN-NEXT: S_NOP 7
1402 # GCN-NEXT: S_NOP 2
1403 # GCN-NEXT: V_MFMA
1404 name:            dgemm16x16_mfma_write_agpr_mfma_srca_read_overlap
1405 body:             |
1406   bb.0:
1407     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7 = V_MFMA_F64_16X16X4F64_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17, 0, 0, 0, implicit $mode, implicit $exec
1408     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $agpr0_agpr1, $vgpr10_vgpr11, $vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, 0, implicit $mode, implicit $exec
1410 # GCN-LABEL: name: dgemm4x4_mfma_write_agpr_sgemm_mfma_srca_read_overlap
1411 # GCN:      V_MFMA
1412 # GCN-NEXT: S_NOP 5
1413 # GCN-NEXT: V_MFMA
1414 name:            dgemm4x4_mfma_write_agpr_sgemm_mfma_srca_read_overlap
1415 body:             |
1416   bb.0:
1417     $agpr4_agpr5 = V_MFMA_F64_4X4X4F64_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec
1418     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $agpr4, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
1420 # GCN-LABEL: name: dgemm16x16_mfma_write_agpr_sgemm_mfma_srca_read_overlap
1421 # GCN:      V_MFMA
1422 # GCN-NEXT: S_NOP 7
1423 # GCN-NEXT: S_NOP 2
1424 # GCN-NEXT: V_MFMA
1425 name:            dgemm16x16_mfma_write_agpr_sgemm_mfma_srca_read_overlap
1426 body:             |
1427   bb.0:
1428     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7 = V_MFMA_F64_16X16X4F64_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17, 0, 0, 0, implicit $mode, implicit $exec
1429     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $agpr4, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
1431 # GCN-LABEL: name: xdl_sgemm4x4_mfma_write_agpr_dgemm_mfma_srca_read_overlap
1432 # GCN:      V_MFMA
1433 # GCN-NEXT: S_NOP 4
1434 # GCN-NEXT: V_MFMA
1435 name:            xdl_sgemm4x4_mfma_write_agpr_dgemm_mfma_srca_read_overlap
1436 body:             |
1437   bb.0:
1438     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_I32_4X4X4I8_e64 $vgpr4, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1439     $vgpr4_vgpr5 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $agpr0_agpr1, $vgpr4_vgpr5, $vgpr4_vgpr5, 0, 0, 0, implicit $mode, implicit $exec
1441 # GCN-LABEL: name: dgemm4x4_mfma_write_agpr_mfma_srcb_read_overlap
1442 # GCN:      V_MFMA
1443 # GCN-NEXT: S_NOP 5
1444 # GCN-NEXT: V_MFMA
1445 name:            dgemm4x4_mfma_write_agpr_mfma_srcb_read_overlap
1446 body:             |
1447   bb.0:
1448     $agpr2_agpr3 = V_MFMA_F64_4X4X4F64_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec
1449     $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $agpr2_agpr3, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec
1451 # GCN-LABEL: name: dgemm16x16_mfma_write_agpr_mfma_srcb_read_overlap
1452 # GCN:      V_MFMA
1453 # GCN-NEXT: S_NOP 7
1454 # GCN-NEXT: S_NOP 2
1455 # GCN-NEXT: V_MFMA
1456 name:            dgemm16x16_mfma_write_agpr_mfma_srcb_read_overlap
1457 body:             |
1458   bb.0:
1459     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7 = V_MFMA_F64_16X16X4F64_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17, 0, 0, 0, implicit $mode, implicit $exec
1460     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $agpr0_agpr1, $vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, 0, implicit $mode, implicit $exec
1462 # GCN-LABEL: name: dmfma4x4_write_agpr_flat_read_overlap
1463 # GCN:      V_MFMA
1464 # GCN-NEXT: S_NOP 7
1465 # GCN-NEXT: S_NOP 0
1466 # GCN-NEXT: FLAT_STORE_DWORD
1467 name:            dmfma4x4_write_agpr_flat_read_overlap
1468 body:             |
1469   bb.0:
1470     $agpr4_agpr5 = V_MFMA_F64_4X4X4F64_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec
1471     FLAT_STORE_DWORD $vgpr0_vgpr1, $agpr5, 0, 0, implicit $mode, implicit $exec, implicit $flat_scr
1473 # GCN-LABEL: name: dmfma4x4_write_agpr_flat_read_full
1474 # GCN:      V_MFMA
1475 # GCN-NEXT: S_NOP 7
1476 # GCN-NEXT: S_NOP 0
1477 # GCN-NEXT: FLAT_STORE_DWORD
1478 name:            dmfma4x4_write_agpr_flat_read_full
1479 body:             |
1480   bb.0:
1481     $agpr4_agpr5 = V_MFMA_F64_4X4X4F64_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec
1482     FLAT_STORE_DWORDX2 $vgpr0_vgpr1, $agpr4_agpr5, 0, 0, implicit $mode, implicit $exec, implicit $flat_scr
1484 # GCN-LABEL: name: dmfma16x16_write_agpr_flat_read
1485 # GCN:      V_MFMA
1486 # GCN-NEXT: S_NOP 7
1487 # GCN-NEXT: S_NOP 7
1488 # GCN-NEXT: S_NOP 1
1489 # GCN-NEXT: FLAT_STORE_DWORD
1490 name:            dmfma16x16_write_agpr_flat_read
1491 body:             |
1492   bb.0:
1493     $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9 = V_MFMA_F64_16X16X4F64_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, 0, 0, 0, implicit $mode, implicit $exec
1494     FLAT_STORE_DWORD $vgpr0_vgpr1, $agpr4, 0, 0, implicit $mode, implicit $exec, implicit $flat_scr
1496 # GCN-LABEL: name: dmfma4x4_write_agpr_valu_read
1497 # GCN:      V_MFMA
1498 # GCN-NEXT: S_NOP 5
1499 # GCN-NEXT: V_ACCVGPR_READ_B32_e64
1500 name:            dmfma4x4_write_agpr_valu_read
1501 body:             |
1502   bb.0:
1503     $agpr4_agpr5 = V_MFMA_F64_4X4X4F64_e64 $agpr0_agpr1, $vgpr0_vgpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec
1504     $vgpr5 = V_ACCVGPR_READ_B32_e64 $agpr5, implicit $exec
1506 # GCN-LABEL: name: dmfma16x16_write_agpr_valu_read
1507 # GCN:      V_MFMA
1508 # GCN-NEXT: S_NOP 7
1509 # GCN-NEXT: S_NOP 2
1510 # GCN-NEXT: V_ACCVGPR_READ_B32_e64
1511 name:            dmfma16x16_write_agpr_valu_read
1512 body:             |
1513   bb.0:
1514     $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9 = V_MFMA_F64_16X16X4F64_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, 0, 0, 0, implicit $mode, implicit $exec
1515     $vgpr12 = V_ACCVGPR_READ_B32_e64 $agpr4, implicit $exec
1517 # GCN-LABEL: name: dmfma4x4_write_agpr_valu_write
1518 # GCN:      V_MFMA
1519 # GCN-NEXT: S_NOP 5
1520 # GCN-NEXT: V_ACCVGPR_WRITE_B32_e64
1521 name:            dmfma4x4_write_agpr_valu_write
1522 body:             |
1523   bb.0:
1524     $agpr4_agpr5 = V_MFMA_F64_4X4X4F64_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec
1525     $agpr4 = V_ACCVGPR_WRITE_B32_e64 0, implicit $mode, implicit $exec
1527 # GCN-LABEL: name: dmfma16x16_write_agpr_valu_write
1528 # GCN:      V_MFMA
1529 # GCN-NEXT: S_NOP 7
1530 # GCN-NEXT: S_NOP 2
1531 # GCN-NEXT: V_ACCVGPR_WRITE_B32_e64
1532 name:            dmfma16x16_write_agpr_valu_write
1533 body:             |
1534   bb.0:
1535     $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9 = V_MFMA_F64_16X16X4F64_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, 0, 0, 0, implicit $mode, implicit $exec
1536     $agpr3 = V_ACCVGPR_WRITE_B32_e64 0, implicit $mode, implicit $exec
1538 # GCN-LABEL: name: dmfma4x4_read_srcc_agpr_valu_write
1539 # GCN:      V_MFMA
1540 # GCN-NEXT: V_ACCVGPR_WRITE_B32_e64
1541 name:            dmfma4x4_read_srcc_agpr_valu_write
1542 body:             |
1543   bb.0:
1544     $agpr4_agpr5 = V_MFMA_F64_4X4X4F64_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec
1545     $agpr1 = V_ACCVGPR_WRITE_B32_e64 0, implicit $mode, implicit $exec
1547 # GCN-LABEL: name: dmfma16x16_read_srcc_agpr_valu_write
1548 # GCN:      V_MFMA
1549 # GCN-NEXT: V_ACCVGPR_WRITE_B32_e64
1550 name:            dmfma16x16_read_srcc_agpr_valu_write
1551 body:             |
1552   bb.0:
1553     $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9 = V_MFMA_F64_16X16X4F64_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, 0, 0, 0, implicit $mode, implicit $exec
1554     $agpr1 = V_ACCVGPR_WRITE_B32_e64 0, implicit $mode, implicit $exec
1556 # GCN-LABEL: name: dgemm_accvgr_to_fma64
1557 # GCN:      V_MFMA
1558 # GCN-NEXT: S_NOP 1
1559 # GCN-NEXT: V_FMA_F64_e64
1560 name:            dgemm_accvgr_to_fma64
1561 body:             |
1562   bb.0:
1563     $agpr0_agpr1 = V_MFMA_F64_4X4X4F64_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec
1564     $vgpr4_vgpr5 = V_FMA_F64_e64 0, $vgpr4_vgpr5, 0, $vgpr4_vgpr5, 0, $vgpr4_vgpr5, 0, 0, implicit $mode, implicit $exec
1566 # GCN-LABEL: name: dgemm_accvgr_to_fmac64
1567 # GCN:      V_MFMA
1568 # GCN-NEXT: S_NOP 1
1569 # GCN-NEXT: V_FMAC_F64
1570 name:            dgemm_accvgr_to_fmac64
1571 body:             |
1572   bb.0:
1573     $agpr0_agpr1 = V_MFMA_F64_4X4X4F64_e64 $agpr0_agpr1, $agpr0_agpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec
1574     $vgpr4_vgpr5 = V_FMAC_F64_e32 $vgpr4_vgpr5, $vgpr4_vgpr5, $vgpr4_vgpr5, implicit $mode, implicit $exec
1576 # GCN-LABEL: name: sgemm16X16X16_mfma_write_agpr_mfma_read_overlap
1577 # GCN:      V_MFMA
1578 # GCN-NEXT: S_NOP 4
1579 # GCN-NEXT: V_MFMA
1580 name:            sgemm16X16X16_mfma_write_agpr_mfma_read_overlap
1581 body:             |
1582   bb.0:
1583     $agpr2_agpr3_agpr4_agpr5 = V_MFMA_F32_16X16X16F16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1584     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_16X16X16F16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1586 # GCN-LABEL: name: sgemm16X16X32_mfma_write_agpr_mfma_read_overlap
1587 # GCN:      V_MFMA
1588 # GCN-NEXT: S_NOP 4
1589 # GCN-NEXT: V_MFMA
1590 name:            sgemm16X16X32_mfma_write_agpr_mfma_read_overlap
1591 body:             |
1592   bb.0:
1593     $agpr2_agpr3_agpr4_agpr5 = V_MFMA_I32_16X16X32I8_e64 $vgpr0_vgpr1, $vgpr2_vgpr3, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1594     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_I32_16X16X32I8_e64 $vgpr0_vgpr1, $vgpr2_vgpr3, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1596 # GCN-LABEL: name: sgemm16X16X16_mfma_write_agpr_dgemm_read_overlap
1597 # GCN:      V_MFMA
1598 # GCN-NEXT: S_NOP 4
1599 # GCN-NEXT: V_MFMA
1600 name:            sgemm16X16X16_mfma_write_agpr_dgemm_read_overlap
1601 body:             |
1602   bb.0:
1603     $vgpr2_vgpr3_vgpr4_vgpr5 = V_MFMA_F32_16X16X16F16_vgprcd_e64 $vgpr8_vgpr9, $vgpr8_vgpr9, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
1604     $vgpr6_vgpr7 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
1606 # GCN-LABEL: name: sgemm16X16X16_mfma_write_agpr_smfmac_read_overlap
1607 # GCN:      V_MFMA
1608 # GCN-NEXT: S_NOP 4
1609 # GCN-NEXT: V_SMFMAC
1610 name:            sgemm16X16X16_mfma_write_agpr_smfmac_read_overlap
1611 body:             |
1612   bb.0:
1613     $agpr2_agpr3_agpr4_agpr5 = V_MFMA_F32_16X16X16F16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1614     $agpr0_agpr1_agpr2_agpr3 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $agpr0_agpr1_agpr2_agpr3, implicit $mode, implicit $exec
1616 # GCN-LABEL: name: smfmac16x16_write_agpr_smfmac_read_overlap
1617 # GCN:      V_SMFMAC
1618 # GCN-NEXT: S_NOP 4
1619 # GCN-NEXT: V_SMFMAC
1620 name:            smfmac16x16_write_agpr_smfmac_read_overlap
1621 body:             |
1622   bb.0:
1623     $agpr2_agpr3_agpr4_agpr5 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $agpr2_agpr3_agpr4_agpr5, implicit $mode, implicit $exec
1624     $agpr0_agpr1_agpr2_agpr3 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $agpr0_agpr1_agpr2_agpr3, implicit $mode, implicit $exec
1626 # GCN-LABEL: name: xdl_sgemm16X16X16_mfma_write_agpr_mfma_srca_read_overlap
1627 # GCN:      V_MFMA
1628 # GCN-NEXT: S_NOP 6
1629 # GCN-NEXT: V_MFMA
1630 name:            xdl_sgemm16X16X16_mfma_write_agpr_mfma_srca_read_overlap
1631 body:             |
1632   bb.0:
1633     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_I32_16X16X32I8_e64 $vgpr0_vgpr1, $vgpr2_vgpr3, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1634     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $agpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1636 # GCN-LABEL: name: xdl_sgemm16X16X32_mfma_write_agpr_mfma_srcb_read_overlap
1637 # GCN:      V_MFMA
1638 # GCN-NEXT: S_NOP 6
1639 # GCN-NEXT: V_MFMA
1640 name:            xdl_sgemm16X16X32_mfma_write_agpr_mfma_srcb_read_overlap
1641 body:             |
1642   bb.0:
1643     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_I32_16X16X32I8_e64 $vgpr0_vgpr1, $vgpr2_vgpr3, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1644     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $vgpr0, $agpr1, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1646 # GCN-LABEL: name: xdl_sgemm16X16X16_mfma_write_vgpr_dmfma16x16_srca_read_overlap
1647 # GCN:      V_MFMA
1648 # GCN-NEXT: S_NOP 6
1649 # GCN-NEXT: V_MFMA
1650 name:            xdl_sgemm16X16X16_mfma_write_vgpr_dmfma16x16_srca_read_overlap
1651 body:             |
1652   bb.0:
1653     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_16X16X32I8_vgprcd_e64 $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
1654     $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr4_vgpr5, $vgpr4_vgpr5, 0, 0, 0, implicit $mode, implicit $exec
1656 # GCN-LABEL: name: xdl_sgemm16X16X16_mfma_write_vgpr_valu_write
1657 # GCN:      V_MFMA
1658 # GCN-NEXT: S_NOP 6
1659 # GCN-NEXT: V_MOV_B32
1660 name:            xdl_sgemm16X16X16_mfma_write_vgpr_valu_write
1661 body:             |
1662   bb.0:
1663     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_16X16X32I8_vgprcd_e64 $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
1664     $vgpr1 = V_MOV_B32_e32 0, implicit $mode, implicit $exec
1666 # GCN-LABEL: name: xdl_sgemm16X16X16_mfma_write_vgpr_vm_read
1667 # GCN:      V_MFMA
1668 # GCN-NEXT: S_NOP 6
1669 # GCN-NEXT: BUFFER_STORE_DWORD
1670 name:            xdl_sgemm16X16X16_mfma_write_vgpr_vm_read
1671 body:             |
1672   bb.0:
1673     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_16X16X32I8_vgprcd_e64 $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
1674     BUFFER_STORE_DWORD_OFFSET $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $mode, implicit $exec
1676 # GCN-LABEL: name: xdl_sgemm16X16X16_mfma_write_vgpr_valu_read
1677 # GCN:      V_MFMA
1678 # GCN-NEXT: S_NOP 6
1679 # GCN-NEXT: V_MOV_B32
1680 name:            xdl_sgemm16X16X16_mfma_write_vgpr_valu_read
1681 body:             |
1682   bb.0:
1683     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_16X16X32I8_vgprcd_e64 $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
1684     $vgpr4 = V_MOV_B32_e32 $vgpr0, implicit $mode, implicit $exec
1686 # GCN-LABEL: name: xdl_sgemm16X16X16_mfma_write_vgpr_dot_read
1687 # GCN:      V_MFMA
1688 # GCN-NEXT: S_NOP 6
1689 # GCN-NEXT: V_DOT
1690 name:            xdl_sgemm16X16X16_mfma_write_vgpr_dot_read
1691 body:             |
1692   bb.0:
1693     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_16X16X32I8_vgprcd_e64 $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
1694     $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec
1696 # GCN-LABEL: name: smfmac16x16x32_write_agpr_mfma_read_same_agpr_as_srcc
1697 # GCN:      V_SMFMAC
1698 # GCN-NEXT: V_SMFMAC
1699 name:            smfmac16x16x32_write_agpr_mfma_read_same_agpr_as_srcc
1700 body:             |
1701   bb.0:
1702     $agpr0_agpr1_agpr2_agpr3 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $agpr0_agpr1_agpr2_agpr3, implicit $mode, implicit $exec
1703     $agpr0_agpr1_agpr2_agpr3 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $agpr0_agpr1_agpr2_agpr3, implicit $mode, implicit $exec
1705 # GCN-LABEL: name: smfmac32x32x32_write_agpr_mfma_read_same_agpr_as_srcc
1706 # GCN:      V_SMFMAC
1707 # GCN-NEXT: V_SMFMAC
1708 name:            smfmac32x32x32_write_agpr_mfma_read_same_agpr_as_srcc
1709 body:             |
1710   bb.0:
1711     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_SMFMAC_I32_32X32X32_I8_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, implicit $mode, implicit $exec
1712     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_SMFMAC_I32_32X32X32_I8_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, implicit $mode, implicit $exec
1714 # GCN-LABEL: name: smfmac16x16x32_mfma_write_agpr_mfma_read_overlap
1715 # GCN:      V_SMFMAC
1716 # GCN-NEXT: S_NOP 4
1717 # GCN-NEXT: V_SMFMAC
1718 name:            smfmac16x16x32_mfma_write_agpr_mfma_read_overlap
1719 body:             |
1720   bb.0:
1721     $agpr0_agpr1_agpr2_agpr3 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $agpr0_agpr1_agpr2_agpr3, implicit $mode, implicit $exec
1722     $agpr2_agpr3_agpr4_agpr5 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $agpr2_agpr3_agpr4_agpr5, implicit $mode, implicit $exec
1724 # GCN-LABEL: name: smfmac32x32x32_mfma_write_agpr_mfma_read_overlap
1725 # GCN:      V_SMFMAC
1726 # GCN-NEXT: S_NOP 7
1727 # GCN-NEXT: S_NOP 0
1728 # GCN-NEXT: V_SMFMAC
1729 name:            smfmac32x32x32_mfma_write_agpr_mfma_read_overlap
1730 body:             |
1731   bb.0:
1732     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_SMFMAC_F32_32X32X16_BF16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, implicit $mode, implicit $exec
1733     $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17 = V_SMFMAC_F32_32X32X16_BF16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17, implicit $mode, implicit $exec
1735 # GCN-LABEL: name: smfmac16x16x32_mfma_write_vgpr_smfmac_read_idx
1736 # GCN:      V_SMFMAC
1737 # GCN-NEXT: S_NOP 6
1738 # GCN-NEXT: V_SMFMAC
1739 name:            smfmac16x16x32_mfma_write_vgpr_smfmac_read_idx
1740 body:             |
1741   bb.0:
1742     $vgpr6_vgpr7_vgpr8_vgpr9 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $vgpr6_vgpr7_vgpr8_vgpr9, implicit $mode, implicit $exec
1743     $vgpr0_vgpr1_vgpr2_vgpr3 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr6, 0, 0, $vgpr0_vgpr1_vgpr2_vgpr3, implicit $mode, implicit $exec
1745 # GCN-LABEL: name: dgemm4x4_mfma_write_vgpr_smfmac16x16x32_read_overlap
1746 # GCN:      V_MFMA
1747 # GCN-NEXT: V_SMFMAC
1748 name:            dgemm4x4_mfma_write_vgpr_smfmac16x16x32_read_overlap
1749 body:             |
1750   bb.0:
1751     $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec
1752     $vgpr0_vgpr1_vgpr2_vgpr3 = V_SMFMAC_F32_16X16X32_BF16_e64 $vgpr10_vgpr11, $vgpr12_vgpr13_vgpr14_vgpr15, $vgpr32, 0, 0, $vgpr0_vgpr1_vgpr2_vgpr3, implicit $mode, implicit $exec
1754 # GCN-LABEL: name: dgemm16x16_mfma_write_vgpr_mfmai8_read_overlap
1755 # GCN:      V_MFMA
1756 # GCN-NEXT: V_MFMA
1757 name:            dgemm16x16_mfma_write_vgpr_mfmai8_read_overlap
1758 body:             |
1759   bb.0:
1760     $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec
1761     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_16X16X32I8_vgprcd_e64 $vgpr10_vgpr11, $vgpr12_vgpr13, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
1763 # GCN-LABEL: name: dgemm16x16_mfma_write_vgpr_mfmaxf32_read_overlap
1764 # GCN:      V_MFMA
1765 # GCN-NEXT: V_MFMA
1766 name:            dgemm16x16_mfma_write_vgpr_mfmaxf32_read_overlap
1767 body:             |
1768   bb.0:
1769     $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec
1770     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_16X16X8XF32_vgprcd_e64 $vgpr10_vgpr11, $vgpr12_vgpr13, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
1772 # GCN-LABEL: name: nonxdl_sgemm4x4_mfma_write_agpr_nonxdl_mfma_read_overlap
1773 # GCN:      V_MFMA
1774 # GCN-NEXT: S_NOP 1
1775 # GCN-NEXT: V_MFMA
1776 name:            nonxdl_sgemm4x4_mfma_write_agpr_nonxdl_mfma_read_overlap
1777 body:             |
1778   bb.0:
1779     $agpr2_agpr3_agpr4_agpr5 = V_MFMA_F32_4X4X1F32_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1780     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1782 # GCN-LABEL: name: nonxdl_sgemm4x4_mfma_write_agpr_xdl_mfma_read_overlap
1783 # GCN:      V_MFMA
1784 # GCN-NEXT: V_MFMA
1785 name:            nonxdl_sgemm4x4_mfma_write_agpr_xdl_mfma_read_overlap
1786 body:             |
1787   bb.0:
1788     $agpr2_agpr3_agpr4_agpr5 = V_MFMA_F32_4X4X1F32_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1789     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_I32_4X4X4I8_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1791 # GCN-LABEL: name: xdl_sgemm4x4_mfma_write_agpr_mfma_read_overlap
1792 # GCN:      V_MFMA
1793 # GCN-NEXT: S_NOP 2
1794 # GCN-NEXT: V_MFMA
1795 name:            xdl_sgemm4x4_mfma_write_agpr_mfma_read_overlap
1796 body:             |
1797   bb.0:
1798     $agpr2_agpr3_agpr4_agpr5 = V_MFMA_I32_4X4X4I8_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1799     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1801 # GCN-LABEL: name: nonxdl_sgemm4x4_mfma_write_agpr_mfma_srca_read_overlap
1802 # GCN:      V_MFMA
1803 # GCN-NEXT: S_NOP 3
1804 # GCN-NEXT: V_MFMA
1805 name:            nonxdl_sgemm4x4_mfma_write_agpr_mfma_srca_read_overlap
1806 body:             |
1807   bb.0:
1808     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1809     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $agpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1811 # GCN-LABEL: name: nonxdl_smfma4x4_write_vgpr_vm_read
1812 # GCN:      V_MFMA
1813 # GCN-NEXT: S_NOP 3
1814 # GCN-NEXT: BUFFER_STORE_DWORD
1815 name:            nonxdl_smfma4x4_write_vgpr_vm_read
1816 body:             |
1817   bb.0:
1818     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
1819     BUFFER_STORE_DWORD_OFFSET $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $mode, implicit $exec
1821 # GCN-LABEL: name: nonxdl_smfma4x4_write_vgpr_valu_read
1822 # GCN:      V_MFMA
1823 # GCN-NEXT: S_NOP 3
1824 # GCN-NEXT: V_MOV_B32
1825 name:            nonxdl_smfma4x4_write_vgpr_valu_read
1826 body:             |
1827   bb.0:
1828     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
1829     $vgpr4 = V_MOV_B32_e32 $vgpr0, implicit $mode, implicit $exec
1831 # GCN-LABEL: name: nonxdl_smfma4x4_write_vgpr_valu_write
1832 # GCN:      V_MFMA
1833 # GCN-NEXT: S_NOP 3
1834 # GCN-NEXT: V_MOV_B32
1835 name:            nonxdl_smfma4x4_write_vgpr_valu_write
1836 body:             |
1837   bb.0:
1838     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr4, $vgpr0, $vgpr6_vgpr7_vgpr8_vgpr9, 0, 0, 0, implicit $mode, implicit $exec
1839     $vgpr1 = V_MOV_B32_e32 0, implicit $mode, implicit $exec
1841 # GCN-LABEL: name: nonxdl_8pass_smfma16x16_write_vgpr_vm_read
1842 # GCN:      V_MFMA
1843 # GCN-NEXT: S_NOP 7
1844 # GCN-NEXT: S_NOP 1
1845 # GCN-NEXT: BUFFER_STORE_DWORD
1846 name:            nonxdl_8pass_smfma16x16_write_vgpr_vm_read
1847 body:             |
1848   bb.0:
1849     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr26, $vgpr27, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
1850     BUFFER_STORE_DWORD_OFFSET $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $mode, implicit $exec
1852 # GCN-LABEL: name: nonxdl_8pass_smfma16x16_write_vgpr_valu_read
1853 # GCN:      V_MFMA
1854 # GCN-NEXT: S_NOP 7
1855 # GCN-NEXT: S_NOP 1
1856 # GCN-NEXT: V_MOV_B32
1857 name:            nonxdl_8pass_smfma16x16_write_vgpr_valu_read
1858 body:             |
1859   bb.0:
1860     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr26, $vgpr27, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
1861     $vgpr4 = V_MOV_B32_e32 $vgpr0, implicit $mode, implicit $exec
1863 # GCN-LABEL: name: nonxdl_8pass_smfma16x16_write_vgpr_valu_write
1864 # GCN:      V_MFMA
1865 # GCN-NEXT: S_NOP 7
1866 # GCN-NEXT: S_NOP 1
1867 # GCN-NEXT: V_MOV_B32
1868 name:            nonxdl_8pass_smfma16x16_write_vgpr_valu_write
1869 body:             |
1870   bb.0:
1871     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr26, $vgpr27, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
1872     $vgpr1 = V_MOV_B32_e32 0, implicit $mode, implicit $exec
1874 # GCN-LABEL: name: nonxdl_smfma32x32_write_vgpr_vm_read
1875 # GCN:      V_MFMA
1876 # GCN-NEXT: S_NOP 7
1877 # GCN-NEXT: S_NOP 7
1878 # GCN-NEXT: S_NOP 1
1879 # GCN-NEXT: BUFFER_STORE_DWORD
1880 name:            nonxdl_smfma32x32_write_vgpr_vm_read
1881 body:             |
1882   bb.0:
1883     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31 = V_MFMA_F32_32X32X1F32_vgprcd_e64 $agpr26, $agpr28, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 0, 0, 0, implicit $mode, implicit $exec
1884     BUFFER_STORE_DWORD_OFFSET $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $mode, implicit $exec
1886 # GCN-LABEL: name: nonxdl_smfma32x32_write_vgpr_valu_read
1887 # GCN:      V_MFMA
1888 # GCN-NEXT: S_NOP 7
1889 # GCN-NEXT: S_NOP 7
1890 # GCN-NEXT: S_NOP 1
1891 # GCN-NEXT: V_MOV_B32
1892 name:            nonxdl_smfma32x32_write_vgpr_valu_read
1893 body:             |
1894   bb.0:
1895     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31 = V_MFMA_F32_32X32X1F32_vgprcd_e64 $agpr26, $agpr28, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 0, 0, 0, implicit $mode, implicit $exec
1896     $vgpr4 = V_MOV_B32_e32 $vgpr0, implicit $mode, implicit $exec
1898 # GCN-LABEL: name: nonxdl_smfma32x32_write_vgpr_valu_write
1899 # GCN:      V_MFMA
1900 # GCN-NEXT: S_NOP 7
1901 # GCN-NEXT: S_NOP 7
1902 # GCN-NEXT: S_NOP 1
1903 # GCN-NEXT: V_MOV_B32
1904 name:            nonxdl_smfma32x32_write_vgpr_valu_write
1905 body:             |
1906   bb.0:
1907     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31 = V_MFMA_F32_32X32X1F32_vgprcd_e64 $agpr26, $agpr28, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 0, 0, 0, implicit $mode, implicit $exec
1908     $vgpr1 = V_MOV_B32_e32 0, implicit $mode, implicit $exec
1910 # GCN-LABEL: name: xdl_sgemm16x16_4pass_mfma_write_agpr_mfma_read_overlap
1911 # GCN:      V_MFMA
1912 # GCN-NEXT: S_NOP 4
1913 # GCN-NEXT: V_MFMA
1914 name:            xdl_sgemm16x16_4pass_mfma_write_agpr_mfma_read_overlap
1915 body:             |
1916   bb.0:
1917     $agpr2_agpr3_agpr4_agpr5 = V_MFMA_I32_16X16X32I8_e64 $vgpr0_vgpr1, $vgpr2_vgpr3, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1918     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_16X16X8XF32_e64 $vgpr10_vgpr11, $vgpr12_vgpr13, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1920 # GCN-LABEL: name: smfmac16x16_mfma_write_agpr_mfma_read_overlap
1921 # GCN:      V_SMFMAC
1922 # GCN-NEXT: S_NOP 4
1923 # GCN-NEXT: V_MFMA
1924 name:            smfmac16x16_mfma_write_agpr_mfma_read_overlap
1925 body:             |
1926   bb.0:
1927     $agpr2_agpr3_agpr4_agpr5 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $agpr2_agpr3_agpr4_agpr5, implicit $mode, implicit $exec
1928     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_16X16X8XF32_e64 $vgpr10_vgpr11, $vgpr12_vgpr13, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
1930 # GCN-LABEL: name: xdl_sgemm4x4_mfma_read_vgpr_srcc_valu_write
1931 # GCN:      V_MFMA
1932 # GCN-NEXT: S_NOP 0
1933 # GCN-NEXT: V_MOV_B32
1934 name:            xdl_sgemm4x4_mfma_read_vgpr_srcc_valu_write
1935 body:             |
1936   bb.0:
1937     $vgpr10_vgpr11_vgpr12_vgpr13 = V_MFMA_I32_4X4X4I8_vgprcd_e64 $vgpr4, $vgpr5, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
1938     $vgpr1 = V_MOV_B32_e32 0, implicit $exec
1940 # GCN-LABEL: name: nonxdl_sgemm4x4_mfma_read_vgpr_srcc_valu_write
1941 # GCN:      V_MFMA
1942 # GCN-NEXT: V_MOV_B32
1943 name:            nonxdl_sgemm4x4_mfma_read_vgpr_srcc_valu_write
1944 body:             |
1945   bb.0:
1946     $vgpr10_vgpr11_vgpr12_vgpr13 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr4, $vgpr5, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
1947     $vgpr1 = V_MOV_B32_e32 0, implicit $exec
1949 # GCN-LABEL: name: xdl_4pass_sgemm16x16_mfma_read_vgpr_srcc_valu_write
1950 # GCN:      V_MFMA
1951 # GCN-NEXT: S_NOP 2
1952 # GCN-NEXT: V_MOV_B32
1953 name:            xdl_4pass_sgemm16x16_mfma_read_vgpr_srcc_valu_write
1954 body:             |
1955   bb.0:
1956     $vgpr10_vgpr11_vgpr12_vgpr13 = V_MFMA_F32_16X16X8XF32_vgprcd_e64 $vgpr10_vgpr11, $vgpr12_vgpr13, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec
1957     $vgpr1 = V_MOV_B32_e32 0, implicit $exec
1959 # GCN-LABEL: name: smfmac16x16_read_vgpr_srcc_valu_write
1960 # GCN:      V_SMFMAC
1961 # GCN-NEXT: S_NOP 6
1962 # GCN-NEXT: V_MOV_B32
1963 name:            smfmac16x16_read_vgpr_srcc_valu_write
1964 body:             |
1965   bb.0:
1966     $vgpr0_vgpr1_vgpr2_vgpr3 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $vgpr0_vgpr1_vgpr2_vgpr3, implicit $mode, implicit $exec
1967     $vgpr1 = V_MOV_B32_e32 0, implicit $exec
1969 # GCN-LABEL: name: xdl_8pass_sgemm16x16_mfma_read_vgpr_srcc_valu_write
1970 # GCN:      V_MFMA
1971 # GCN-NEXT: S_NOP 6
1972 # GCN-NEXT: V_MOV_B32
1973 name:            xdl_8pass_sgemm16x16_mfma_read_vgpr_srcc_valu_write
1974 body:             |
1975   bb.0:
1976     $vgpr100_vgpr101_vgpr102_vgpr103_vgpr104_vgpr105_vgpr106_vgpr107_vgpr108_vgpr109_vgpr110_vgpr111_vgpr112_vgpr113_vgpr114_vgpr115 = V_MFMA_I32_16X16X4I8_vgprcd_e64 $agpr26, $agpr27, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
1977     $vgpr1 = V_MOV_B32_e32 0, implicit $exec
1979 # GCN-LABEL: name: nonxdl_8pass_sgemm16x16_mfma_read_vgpr_srcc_valu_write
1980 # GCN:      V_MFMA
1981 # GCN-NEXT: V_MOV_B32
1982 name:            nonxdl_8pass_sgemm16x16_mfma_read_vgpr_srcc_valu_write
1983 body:             |
1984   bb.0:
1985     $vgpr100_vgpr101_vgpr102_vgpr103_vgpr104_vgpr105_vgpr106_vgpr107_vgpr108_vgpr109_vgpr110_vgpr111_vgpr112_vgpr113_vgpr114_vgpr115 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $agpr26, $agpr27, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
1986     $vgpr1 = V_MOV_B32_e32 0, implicit $exec
1988 # GCN-LABEL: name: smfmac32x32_read_vgpr_srcc_valu_write
1989 # GCN:      V_SMFMAC
1990 # GCN-NEXT: S_NOP 7
1991 # GCN-NEXT: S_NOP 2
1992 # GCN-NEXT: V_MOV_B32
1993 name:            smfmac32x32_read_vgpr_srcc_valu_write
1994 body:             |
1995   bb.0:
1996     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_SMFMAC_I32_32X32X32_I8_e64 $agpr0_agpr1, $agpr2_agpr3_agpr4_agpr5, $vgpr2, 0, 0, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, implicit $mode, implicit $exec
1997     $vgpr1 = V_MOV_B32_e32 0, implicit $exec
1999 # GCN-LABEL: name: xdl_sgemm32x32_mfma_read_vgpr_srcc_valu_write
2000 # GCN:      V_MFMA
2001 # GCN-NEXT: S_NOP 7
2002 # GCN-NEXT: S_NOP 6
2003 # GCN-NEXT: V_MOV_B32
2004 name:            xdl_sgemm32x32_mfma_read_vgpr_srcc_valu_write
2005 body:             |
2006   bb.0:
2007     $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71 = V_MFMA_F32_32X32X4F16_vgprcd_e64 $agpr126_agpr127, $agpr128_agpr129, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 0, 0, 0, implicit $mode, implicit $exec
2008     $vgpr1 = V_MOV_B32_e32 0, implicit $exec
2010 # GCN-LABEL: name: nonxdl_sgemm32x32_mfma_read_vgpr_srcc_valu_write
2011 # GCN:      V_MFMA
2012 # GCN-NEXT: V_MOV_B32
2013 name:            nonxdl_sgemm32x32_mfma_read_vgpr_srcc_valu_write
2014 body:             |
2015   bb.0:
2016     $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71 = V_MFMA_F32_32X32X1F32_vgprcd_e64 $agpr26, $agpr28, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 0, 0, 0, implicit $mode, implicit $exec
2017     $vgpr1 = V_MOV_B32_e32 0, implicit $exec
2019 # GCN-LABEL: name: dgemm_between_valu_write_buffer_store_no_snop
2020 # GCN:      V_MOV_B32_e32
2021 # GCN-NEXT: V_MFMA_F64
2022 # GCN-NOT:  S_NOP
2023 # GCN-NEXT: BUFFER_STORE_DWORD
2024 name:            dgemm_between_valu_write_buffer_store_no_snop
2025 body:             |
2026   bb.0:
2027     $vgpr0 = V_MOV_B32_e32 0, implicit $exec
2028     $agpr0_agpr1 = V_MFMA_F64_4X4X4F64_e64 $agpr0_agpr1, $agpr0_agpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec
2029     BUFFER_STORE_DWORDX2_OFFEN_exact $vgpr2_vgpr3, $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec
2033 # 2 pass source
2034 # GCN-LABEL: name: xdl_mfma_2pass_write_vgpr_xdl_mfma_read_overlap_srcc
2035 # GCN:      V_MFMA
2036 # GCN-NEXT: S_NOP 2
2037 # GCN-NEXT: V_MFMA
2038 name:            xdl_mfma_2pass_write_vgpr_xdl_mfma_read_overlap_srcc
2039 body:             |
2040   bb.0:
2042     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X4F16_vgprcd_e64 $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr0_vgpr1_vgpr2_vgpr3, 1, 2, 3, implicit $mode, implicit $exec
2043     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X4F16_vgprcd_e64 $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr2_vgpr3_vgpr4_vgpr5, 1, 2, 3, implicit $mode, implicit $exec
2048 # 2 pass source
2049 # GCN-LABEL: name: xdl_mfma_2pass_write_vgpr_xdl_mfma_read_overlap_srca
2050 # GCN:      V_MFMA
2051 # GCN-NEXT: S_NOP 4
2052 # GCN-NEXT: V_MFMA
2053 name:            xdl_mfma_2pass_write_vgpr_xdl_mfma_read_overlap_srca
2054 body:             |
2055   bb.0:
2057     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X4F16_vgprcd_e64 $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr0_vgpr1_vgpr2_vgpr3, 1, 2, 3, implicit $mode, implicit $exec
2058     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X4F16_vgprcd_e64 $vgpr0_vgpr1, $vgpr6_vgpr7, $vgpr8_vgpr9_vgpr10_vgpr11, 1, 2, 3, implicit $mode, implicit $exec
2063 # 2 pass source
2064 # GCN-LABEL: name: xdl_mfma_2pass_write_vgpr_xdl_mfma_read_overlap_srcb
2065 # GCN:      V_MFMA
2066 # GCN-NEXT: S_NOP 4
2067 # GCN-NEXT: V_MFMA
2068 name:            xdl_mfma_2pass_write_vgpr_xdl_mfma_read_overlap_srcb
2069 body:             |
2070   bb.0:
2072     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X4F16_vgprcd_e64 $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr0_vgpr1_vgpr2_vgpr3, 1, 2, 3, implicit $mode, implicit $exec
2073     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X4F16_vgprcd_e64 $vgpr6_vgpr7, $vgpr2_vgpr3, $vgpr8_vgpr9_vgpr10_vgpr11, 1, 2, 3, implicit $mode, implicit $exec
2078 # 4 pass source
2079 # GCN-LABEL: name: xdl_mfma_4pass_write_vgpr_xdl_mfma_read_overlap_srcc
2080 # GCN:      V_MFMA
2081 # GCN-NEXT: S_NOP 4
2082 # GCN-NEXT: V_MFMA
2083 name:            xdl_mfma_4pass_write_vgpr_xdl_mfma_read_overlap_srcc
2084 body:             |
2085   bb.0:
2086     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_16X16X16F16_vgprcd_e64 $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr0_vgpr1_vgpr2_vgpr3, 1, 2, 3, implicit $mode, implicit $exec
2087     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_16X16X16F16_vgprcd_e64 $vgpr8_vgpr9, $vgpr10_vgpr11, $vgpr2_vgpr3_vgpr4_vgpr5, 1, 2, 3, implicit $mode, implicit $exec
2092 # 4 pass source
2093 # GCN-LABEL: name: xdl_mfma_4pass_write_vgpr_xdl_mfma_read_overlap_srca
2094 # GCN:      V_MFMA
2095 # GCN-NEXT: S_NOP 6
2096 # GCN-NEXT: V_MFMA
2097 name:            xdl_mfma_4pass_write_vgpr_xdl_mfma_read_overlap_srca
2098 body:             |
2099   bb.0:
2100     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_16X16X16F16_vgprcd_e64 $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr0_vgpr1_vgpr2_vgpr3, 1, 2, 3, implicit $mode, implicit $exec
2101     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_16X16X16F16_vgprcd_e64 $vgpr2_vgpr3, $vgpr10_vgpr11, $vgpr6_vgpr7_vgpr8_vgpr9, 1, 2, 3, implicit $mode, implicit $exec
2106 # 4 pass source
2107 # GCN-LABEL: name: xdl_mfma_4pass_write_vgpr_xdl_mfma_read_overlap_srcb
2108 # GCN:      V_MFMA
2109 # GCN-NEXT: S_NOP 6
2110 # GCN-NEXT: V_MFMA
2111 name:            xdl_mfma_4pass_write_vgpr_xdl_mfma_read_overlap_srcb
2112 body:             |
2113   bb.0:
2114     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_16X16X16F16_vgprcd_e64 $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr0_vgpr1_vgpr2_vgpr3, 1, 2, 3, implicit $mode, implicit $exec
2115     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_16X16X16F16_vgprcd_e64 $vgpr10_vgpr11, $vgpr2_vgpr3, $vgpr6_vgpr7_vgpr8_vgpr9, 1, 2, 3, implicit $mode, implicit $exec
2120 # 2 pass source
2121 # GCN-LABEL: name: xdl_mfma_2pass_write_vgpr_sgemm_mfma_read_overlap_srcc
2122 # GCN:      V_MFMA
2123 # GCN-NEXT: S_NOP 2
2124 # GCN-NEXT: V_MFMA
2125 name:            xdl_mfma_2pass_write_vgpr_sgemm_mfma_read_overlap_srcc
2126 body:             |
2127   bb.0:
2129     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X4F16_vgprcd_e64 $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr0_vgpr1_vgpr2_vgpr3, 1, 2, 3, implicit $mode, implicit $exec
2130     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr6, $vgpr8, $vgpr2_vgpr3_vgpr4_vgpr5, 0, 0, 0, implicit $mode, implicit $exec
2135 # 2 pass source
2136 # GCN-LABEL: name: xdl_mfma_2pass_write_vgpr_sgemm_mfma_read_overlap_srca
2137 # GCN:      V_MFMA
2138 # GCN-NEXT: S_NOP 4
2139 # GCN-NEXT: V_MFMA
2140 name:            xdl_mfma_2pass_write_vgpr_sgemm_mfma_read_overlap_srca
2141 body:             |
2142   bb.0:
2144     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X4F16_vgprcd_e64 $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr0_vgpr1_vgpr2_vgpr3, 1, 2, 3, implicit $mode, implicit $exec
2145     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr1, $vgpr8, $vgpr6_vgpr7_vgpr8_vgpr9, 0, 0, 0, implicit $mode, implicit $exec
2150 # 2 pass source
2151 # GCN-LABEL: name: xdl_mfma_2pass_write_vgpr_sgemm_mfma_read_overlap_srcb
2152 # GCN:      V_MFMA
2153 # GCN-NEXT: S_NOP 4
2154 # GCN-NEXT: V_MFMA
2155 name:            xdl_mfma_2pass_write_vgpr_sgemm_mfma_read_overlap_srcb
2156 body:             |
2157   bb.0:
2159     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X4F16_vgprcd_e64 $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr0_vgpr1_vgpr2_vgpr3, 1, 2, 3, implicit $mode, implicit $exec
2160     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr8, $vgpr1, $vgpr6_vgpr7_vgpr8_vgpr9, 0, 0, 0, implicit $mode, implicit $exec
2165 # 4 pass source
2166 # GCN-LABEL: name: xdl_mfma_4pass_write_vgpr_sgemm_mfma_read_overlap_srcc
2167 # GCN:      V_MFMA
2168 # GCN-NEXT: S_NOP 4
2169 # GCN-NEXT: V_MFMA
2170 name:            xdl_mfma_4pass_write_vgpr_sgemm_mfma_read_overlap_srcc
2171 body:             |
2172   bb.0:
2173     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_16X16X16F16_vgprcd_e64 $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr0_vgpr1_vgpr2_vgpr3, 1, 2, 3, implicit $mode, implicit $exec
2174     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr8, $vgpr9, $vgpr2_vgpr3_vgpr4_vgpr5, 0, 0, 0, implicit $mode, implicit $exec
2179 # 4 pass source
2180 # GCN-LABEL: name: xdl_mfma_4pass_write_vgpr_sgemm_mfma_read_overlap_srca
2181 # GCN:      V_MFMA
2182 # GCN-NEXT: S_NOP 6
2183 # GCN-NEXT: V_MFMA
2184 name:            xdl_mfma_4pass_write_vgpr_sgemm_mfma_read_overlap_srca
2185 body:             |
2186   bb.0:
2187     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_16X16X16F16_vgprcd_e64 $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr0_vgpr1_vgpr2_vgpr3, 1, 2, 3, implicit $mode, implicit $exec
2188     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr1, $vgpr8, $vgpr6_vgpr7_vgpr8_vgpr9, 0, 0, 0, implicit $mode, implicit $exec
2193 # 4 pass source
2194 # GCN-LABEL: name: xdl_mfma_4pass_write_vgpr_sgemm_mfma_read_overlap_srcb
2195 # GCN:      V_MFMA
2196 # GCN-NEXT: S_NOP 6
2197 # GCN-NEXT: V_MFMA
2198 name:            xdl_mfma_4pass_write_vgpr_sgemm_mfma_read_overlap_srcb
2199 body:             |
2200   bb.0:
2201     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_16X16X16F16_vgprcd_e64 $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr0_vgpr1_vgpr2_vgpr3, 1, 2, 3, implicit $mode, implicit $exec
2202     $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr8, $vgpr1, $vgpr6_vgpr7_vgpr8_vgpr9, 0, 0, 0, implicit $mode, implicit $exec
2207 # 8 pass source
2208 # GCN-LABEL: name: xdl_mfma_8pass_write_vgpr_nonxdl_sgemm_mfma_read_overlap_srcc
2209 # GCN:      V_MFMA
2210 # GCN-NEXT: S_NOP 7
2211 # GCN-NEXT: S_NOP 0
2212 # GCN-NEXT: V_MFMA
2213 name: xdl_mfma_8pass_write_vgpr_nonxdl_sgemm_mfma_read_overlap_srcc
2214 body:             |
2215   bb.0:
2216     renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_32X32X8F16_vgprcd_e64 killed $vgpr0_vgpr1, killed $vgpr2_vgpr3, 1065353216, 0, 0, 0, implicit $mode, implicit $exec
2218     $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr18, $vgpr19, $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, 0, implicit $mode, implicit $exec
2222 # 8 pass source
2223 # GCN-LABEL: name: xdl_mfma_8pass_write_vgpr_nonxdl_sgemm_mfma_read_overlap_srca
2224 # GCN:      V_MFMA
2225 # GCN-NEXT: S_NOP 7
2226 # GCN-NEXT: S_NOP 2
2227 # GCN-NEXT: V_MFMA
2228 name: xdl_mfma_8pass_write_vgpr_nonxdl_sgemm_mfma_read_overlap_srca
2229 body:             |
2230   bb.0:
2231     renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_32X32X8F16_vgprcd_e64 killed $vgpr0_vgpr1, killed $vgpr2_vgpr3, 1065353216, 0, 0, 0, implicit $mode, implicit $exec
2233     $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr0, $vgpr33, $vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31_vgpr32_vgpr33, 0, 0, 0, implicit $mode, implicit $exec
2237 # 8 pass source
2238 # GCN-LABEL: name: xdl_mfma_8pass_write_vgpr_nonxdl_sgemm_mfma_read_overlap_srcb
2239 # GCN:      V_MFMA
2240 # GCN-NEXT: S_NOP 7
2241 # GCN-NEXT: S_NOP 2
2242 # GCN-NEXT: V_MFMA
2243 name: xdl_mfma_8pass_write_vgpr_nonxdl_sgemm_mfma_read_overlap_srcb
2244 body:             |
2245   bb.0:
2246     renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_32X32X8F16_vgprcd_e64 killed $vgpr0_vgpr1, killed $vgpr2_vgpr3, 1065353216, 0, 0, 0, implicit $mode, implicit $exec
2248     $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr33, $vgpr1, $vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31_vgpr32_vgpr33, 0, 0, 0, implicit $mode, implicit $exec
2252 # 16 pass source
2253 # GCN-LABEL: name: xdl_16pass_write_vgpr_nonxdl_sgemm_mfma_read_overlap_srcc
2254 # GCN:      V_MFMA
2255 # GCN-NEXT: S_NOP 7
2256 # GCN-NEXT: S_NOP 7
2257 # GCN-NEXT: S_NOP 0
2258 # GCN-NEXT: V_MFMA
2259 name:            xdl_16pass_write_vgpr_nonxdl_sgemm_mfma_read_overlap_srcc
2260 body:             |
2261   bb.0:
2262     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31 = V_MFMA_F32_32X32X4F16_vgprcd_e64 $vgpr126_vgpr127, $vgpr128_vgpr129, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 0, 0, 0, implicit $mode, implicit $exec
2264     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_32X32X2F32_vgprcd_e64 killed $vgpr32, killed $vgpr33, $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 1, 2, 3, implicit $mode, implicit $exec
2269 # 16 pass source
2270 # GCN-LABEL: name: xdl_16pass_write_vgpr_nonxdl_sgemm_mfma_read_overlap_srca
2271 # GCN:      V_MFMA
2272 # GCN-NEXT: S_NOP 7
2273 # GCN-NEXT: S_NOP 7
2274 # GCN-NEXT: S_NOP 2
2275 # GCN-NEXT: V_MFMA
2276 name:            xdl_16pass_write_vgpr_nonxdl_sgemm_mfma_read_overlap_srca
2277 body:             |
2278   bb.0:
2279     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31 = V_MFMA_F32_32X32X4F16_vgprcd_e64 $vgpr126_vgpr127, $vgpr128_vgpr129, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 0, 0, 0, implicit $mode, implicit $exec
2280     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_32X32X2F32_vgprcd_e64 killed $vgpr0, killed $vgpr33, $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47, 1, 2, 3, implicit $mode, implicit $exec
2285 # 16 pass source
2286 # GCN-LABEL: name: xdl_16pass_write_vgpr_nonxdl_sgemm_mfma_read_overlap_srcb
2287 # GCN:      V_MFMA
2288 # GCN-NEXT: S_NOP 7
2289 # GCN-NEXT: S_NOP 7
2290 # GCN-NEXT: S_NOP 2
2291 # GCN-NEXT: V_MFMA
2292 name:            xdl_16pass_write_vgpr_nonxdl_sgemm_mfma_read_overlap_srcb
2293 body:             |
2294   bb.0:
2295     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31 = V_MFMA_F32_32X32X4F16_vgprcd_e64 $vgpr126_vgpr127, $vgpr128_vgpr129, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 0, 0, 0, implicit $mode, implicit $exec
2296     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_32X32X2F32_vgprcd_e64 killed $vgpr33, killed $vgpr0, $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47, 1, 2, 3, implicit $mode, implicit $exec
2301 # 8 pass source
2302 # GCN-LABEL: name: nonxdl_8pass_write_vgpr_nonxdl_sgemm_mfma_read_overlap_srcc
2303 # GCN:      V_MFMA
2304 # GCN-NEXT: S_NOP 7
2305 # GCN-NEXT: V_MFMA
2306 name:            nonxdl_8pass_write_vgpr_nonxdl_sgemm_mfma_read_overlap_srcc
2307 body:             |
2308   bb.0:
2309     $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr18, $vgpr19, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
2310     $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr18, $vgpr19, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
2314 # 8 pass source
2315 # GCN-LABEL: name: nonxdl_8pass_write_vgpr_nonxdl_sgemm_mfma_read_overlap_srca
2316 # GCN:      V_MFMA
2317 # GCN-NEXT: S_NOP 7
2318 # GCN-NEXT: S_NOP 1
2319 # GCN-NEXT: V_MFMA
2320 name:            nonxdl_8pass_write_vgpr_nonxdl_sgemm_mfma_read_overlap_srca
2321 body:             |
2322   bb.0:
2323     $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr18, $vgpr19, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
2324     $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr3, $vgpr19, $vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31_vgpr32_vgpr33, 0, 0, 0, implicit $mode, implicit $exec
2328 # 8 pass source
2329 # GCN-LABEL: name: nonxdl_8pass_write_vgpr_nonxdl_sgemm_mfma_read_overlap_srcb
2330 # GCN:      V_MFMA
2331 # GCN-NEXT: S_NOP 7
2332 # GCN-NEXT: S_NOP 1
2333 # GCN-NEXT: V_MFMA
2334 name:            nonxdl_8pass_write_vgpr_nonxdl_sgemm_mfma_read_overlap_srcb
2335 body:             |
2336   bb.0:
2337     $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr18, $vgpr19, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
2338     $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr19, $vgpr3, $vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31_vgpr32_vgpr33, 0, 0, 0, implicit $mode, implicit $exec
2341 # 8 pass source
2342 # GCN-LABEL: name: xdl_mfma_8pass_write_vgpr_xdl_mfma_read_overlap_srcc
2343 # GCN:      V_MFMA
2344 # GCN-NEXT: S_NOP 7
2345 # GCN-NEXT: S_NOP 0
2346 # GCN-NEXT: V_MFMA
2347 name:            xdl_mfma_8pass_write_vgpr_xdl_mfma_read_overlap_srcc
2348 body:             |
2349   bb.0:
2350     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_32X32X8F16_vgprcd_e64 killed $vgpr0_vgpr1, killed $vgpr2_vgpr3, 1065353216, 0, 0, 0, implicit $mode, implicit $exec
2351     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_32X32X8F16_vgprcd_e64 killed $vgpr18_vgpr19, killed $vgpr20_vgpr21, $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, 0, implicit $mode, implicit $exec
2355 # 8 pass source
2356 # GCN-LABEL: name: xdl_mfma_8pass_write_vgpr_xdl_mfma_read_overlap_srca
2357 # GCN:      V_MFMA
2358 # GCN-NEXT: S_NOP 7
2359 # GCN-NEXT: S_NOP 2
2360 # GCN-NEXT: V_MFMA
2361 name:            xdl_mfma_8pass_write_vgpr_xdl_mfma_read_overlap_srca
2362 body:             |
2363   bb.0:
2364     renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_32X32X8F16_vgprcd_e64 killed $vgpr0_vgpr1, killed $vgpr2_vgpr3, 1065353216, 0, 0, 0, implicit $mode, implicit $exec
2365     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_32X32X8F16_vgprcd_e64 killed $vgpr2_vgpr3, killed $vgpr36_vgpr37, $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 0, 0, 0, implicit $mode, implicit $exec
2369 # 8 pass source
2370 # GCN-LABEL: name: xdl_mfma_8pass_write_vgpr_xdl_mfma_read_overlap_srcb
2371 # GCN:      V_MFMA
2372 # GCN-NEXT: S_NOP 7
2373 # GCN-NEXT: S_NOP 2
2374 # GCN-NEXT: V_MFMA
2375 name:            xdl_mfma_8pass_write_vgpr_xdl_mfma_read_overlap_srcb
2376 body:             |
2377   bb.0:
2378     renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_32X32X8F16_vgprcd_e64 killed $vgpr0_vgpr1, killed $vgpr2_vgpr3, 1065353216, 0, 0, 0, implicit $mode, implicit $exec
2379     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_32X32X8F16_vgprcd_e64 killed $vgpr36_vgpr37, killed $vgpr2_vgpr3, $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 0, 0, 0, implicit $mode, implicit $exec
2383 # 16 pass source
2384 # GCN-LABEL: name: xdl_16pass_write_vgpr_xdl_mfma_read_overlap_srcc
2385 # GCN:      V_MFMA
2386 # GCN-NEXT: S_NOP 7
2387 # GCN-NEXT: S_NOP 7
2388 # GCN-NEXT: S_NOP 0
2389 # GCN-NEXT: V_MFMA
2390 name:            xdl_16pass_write_vgpr_xdl_mfma_read_overlap_srcc
2391 body:             |
2392   bb.0:
2393     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31 = V_MFMA_F32_32X32X4F16_vgprcd_e64 $vgpr126_vgpr127, $vgpr128_vgpr129, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 0, 0, 0, implicit $mode, implicit $exec
2394     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31 = V_MFMA_F32_32X32X4F16_vgprcd_e64 $vgpr126_vgpr127, $vgpr128_vgpr129, $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31_vgpr32_vgpr33, 0, 0, 0, implicit $mode, implicit $exec
2399 # 16 pass source
2400 # GCN-LABEL: name: xdl_16pass_write_vgpr_xdl_mfma_read_overlap_srca
2401 # GCN:      V_MFMA
2402 # GCN-NEXT: S_NOP 7
2403 # GCN-NEXT: S_NOP 7
2404 # GCN-NEXT: S_NOP 2
2405 # GCN-NEXT: V_MFMA
2406 name:            xdl_16pass_write_vgpr_xdl_mfma_read_overlap_srca
2407 body:             |
2408   bb.0:
2409     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31 = V_MFMA_F32_32X32X4F16_vgprcd_e64 $vgpr126_vgpr127, $vgpr128_vgpr129, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 0, 0, 0, implicit $mode, implicit $exec
2410     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31 = V_MFMA_F32_32X32X4F16_vgprcd_e64 $vgpr2_vgpr3, $vgpr128_vgpr129, $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63, 0, 0, 0, implicit $mode, implicit $exec
2416 # 16 pass source
2417 # GCN-LABEL: name: xdl_16pass_write_vgpr_xdl_mfma_read_overlap_srcb
2418 # GCN:      V_MFMA
2419 # GCN-NEXT: S_NOP 7
2420 # GCN-NEXT: S_NOP 7
2421 # GCN-NEXT: S_NOP 2
2422 # GCN-NEXT: V_MFMA
2423 name:            xdl_16pass_write_vgpr_xdl_mfma_read_overlap_srcb
2424 body:             |
2425   bb.0:
2426     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31 = V_MFMA_F32_32X32X4F16_vgprcd_e64 $vgpr126_vgpr127, $vgpr128_vgpr129, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 0, 0, 0, implicit $mode, implicit $exec
2427     $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31 = V_MFMA_F32_32X32X4F16_vgprcd_e64 $vgpr128_vgpr129, $vgpr2_vgpr3, $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63, 0, 0, 0, implicit $mode, implicit $exec
2432 # 2 pass source
2433 # GCN-LABEL: name: xdl_mfma_2pass_write_agpr_smfmac_read_overlap_srcc
2434 # GCN:      V_MFMA
2435 # GCN-NEXT: S_NOP 2
2436 # GCN-NEXT: V_SMFMAC_
2437 name:            xdl_mfma_2pass_write_agpr_smfmac_read_overlap_srcc
2438 body:             |
2439   bb.0:
2441     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X4F16_e64 $vgpr4_vgpr5, $vgpr6_vgpr7, $agpr0_agpr1_agpr2_agpr3, 1, 2, 3, implicit $mode, implicit $exec
2442     $agpr2_agpr3_agpr4_agpr5 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $agpr2_agpr3_agpr4_agpr5, implicit $mode, implicit $exec
2447 # GCN-LABEL: name: xdl_4pass_mfma_write_agpr_smfmac_read_overlap_srcc
2448 # GCN:      V_MFMA
2449 # GCN-NEXT: S_NOP 4
2450 # GCN-NEXT: V_SMFMAC_
2451 name:            xdl_4pass_mfma_write_agpr_smfmac_read_overlap_srcc
2452 body:             |
2453   bb.0:
2454     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_I32_16X16X32I8_e64 $vgpr0_vgpr1, $vgpr2_vgpr3, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
2455     $agpr2_agpr3_agpr4_agpr5 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $agpr2_agpr3_agpr4_agpr5, implicit $mode, implicit $exec
2460 # GCN-LABEL: name: xdl_8pass_mfma_write_agpr_smfmac_read_overlap_srcc
2461 # GCN:      V_MFMA
2462 # GCN-NEXT: S_NOP 7
2463 # GCN-NEXT: S_NOP 0
2464 # GCN-NEXT: V_SMFMAC_
2465 name:            xdl_8pass_mfma_write_agpr_smfmac_read_overlap_srcc
2466 body:             |
2467   bb.0:
2468     renamable $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_MFMA_F32_32X32X8F16_e64 killed $vgpr0_vgpr1, killed $vgpr2_vgpr3, 1065353216, 0, 0, 0, implicit $mode, implicit $exec
2469     $agpr2_agpr3_agpr4_agpr5 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $agpr2_agpr3_agpr4_agpr5, implicit $mode, implicit $exec
2473 # GCN-LABEL: name: xdl_16pass_mfma_write_agpr_smfmac_read_overlap_srcc
2474 # GCN:      V_MFMA
2475 # GCN-NEXT: S_NOP 7
2476 # GCN-NEXT: S_NOP 7
2477 # GCN-NEXT: S_NOP 0
2478 # GCN-NEXT: V_SMFMAC_
2479 name:            xdl_16pass_mfma_write_agpr_smfmac_read_overlap_srcc
2480 body:             |
2481   bb.0:
2482     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17_agpr18_agpr19_agpr20_agpr21_agpr22_agpr23_agpr24_agpr25_agpr26_agpr27_agpr28_agpr29_agpr30_agpr31 = V_MFMA_F32_32X32X4F16_e64 $vgpr126_vgpr127, $vgpr128_vgpr129, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17_agpr18_agpr19_agpr20_agpr21_agpr22_agpr23_agpr24_agpr25_agpr26_agpr27_agpr28_agpr29_agpr30_agpr31, 0, 0, 0, implicit $mode, implicit $exec
2483     $agpr2_agpr3_agpr4_agpr5 = V_SMFMAC_F32_16X16X32_F16_e64 $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32, 0, 0, $agpr2_agpr3_agpr4_agpr5, implicit $mode, implicit $exec