1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=amdgcn -mcpu=gfx950 -verify-machineinstrs -run-pass=post-RA-hazard-rec %s -o - | FileCheck -check-prefix=GCN %s
5 name: vcmpx_vopc_write_exec_permlane16_swap_vop1
8 liveins: $vgpr0, $vgpr1
9 ; GCN-LABEL: name: vcmpx_vopc_write_exec_permlane16_swap_vop1
10 ; GCN: liveins: $vgpr0, $vgpr1
12 ; GCN-NEXT: V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
14 ; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
15 V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
16 renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
20 name: vcmpx_vop3_write_exec_permlane16_swap_vop1
23 liveins: $vgpr0, $vgpr1
24 ; GCN-LABEL: name: vcmpx_vop3_write_exec_permlane16_swap_vop1
25 ; GCN: liveins: $vgpr0, $vgpr1
27 ; GCN-NEXT: $exec = V_CMPX_EQ_I32_e64 $vgpr0, $vgpr1, implicit $exec
29 ; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
30 $exec = V_CMPX_EQ_I32_e64 $vgpr0, $vgpr1, implicit $exec
31 renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
35 name: vcmpx_vopc_write_exec_permlane16_swap_vop3
38 liveins: $vgpr0, $vgpr1
39 ; GCN-LABEL: name: vcmpx_vopc_write_exec_permlane16_swap_vop3
40 ; GCN: liveins: $vgpr0, $vgpr1
42 ; GCN-NEXT: V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
44 ; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
45 V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
46 renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
50 name: vcmpx_vop3_write_exec_permlane16_swap_vop3
53 liveins: $vgpr0, $vgpr1
54 ; GCN-LABEL: name: vcmpx_vop3_write_exec_permlane16_swap_vop3
55 ; GCN: liveins: $vgpr0, $vgpr1
57 ; GCN-NEXT: $exec = V_CMPX_EQ_I32_e64 $vgpr0, $vgpr1, implicit $exec
59 ; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
60 $exec = V_CMPX_EQ_I32_e64 $vgpr0, $vgpr1, implicit $exec
61 renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
65 name: vcmpx_vopc_write_exec_permlane32_swap_vop1
68 liveins: $vgpr0, $vgpr1
69 ; GCN-LABEL: name: vcmpx_vopc_write_exec_permlane32_swap_vop1
70 ; GCN: liveins: $vgpr0, $vgpr1
72 ; GCN-NEXT: V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
74 ; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
75 V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
76 renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
80 name: vcmpx_vop3_write_exec_permlane32_swap_vop1
83 liveins: $vgpr0, $vgpr1
84 ; GCN-LABEL: name: vcmpx_vop3_write_exec_permlane32_swap_vop1
85 ; GCN: liveins: $vgpr0, $vgpr1
87 ; GCN-NEXT: $exec = V_CMPX_EQ_I32_e64 $vgpr0, $vgpr1, implicit $exec
89 ; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
90 $exec = V_CMPX_EQ_I32_e64 $vgpr0, $vgpr1, implicit $exec
91 renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
95 name: vcmpx_vopc_write_exec_permlane32_swap_vop3
98 liveins: $vgpr0, $vgpr1
99 ; GCN-LABEL: name: vcmpx_vopc_write_exec_permlane32_swap_vop3
100 ; GCN: liveins: $vgpr0, $vgpr1
102 ; GCN-NEXT: V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
104 ; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
105 V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
106 renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
110 name: vcmpx_vop3_write_exec_permlane32_swap_vop3
113 liveins: $vgpr0, $vgpr1
114 ; GCN-LABEL: name: vcmpx_vop3_write_exec_permlane32_swap_vop3
115 ; GCN: liveins: $vgpr0, $vgpr1
117 ; GCN-NEXT: $exec = V_CMPX_EQ_I32_e64 $vgpr0, $vgpr1, implicit $exec
119 ; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
120 $exec = V_CMPX_EQ_I32_e64 $vgpr0, $vgpr1, implicit $exec
121 renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
125 name: vcmpx_vopc_write_exec_permlane16_swap_vop1__nowait
128 liveins: $vgpr0, $vgpr1
129 ; GCN-LABEL: name: vcmpx_vopc_write_exec_permlane16_swap_vop1__nowait
130 ; GCN: liveins: $vgpr0, $vgpr1
132 ; GCN-NEXT: V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
133 ; GCN-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec
134 ; GCN-NEXT: $vgpr3 = V_MOV_B32_e32 0, implicit $exec
135 ; GCN-NEXT: $vgpr4 = V_MOV_B32_e32 0, implicit $exec
136 ; GCN-NEXT: $vgpr5 = V_MOV_B32_e32 0, implicit $exec
137 ; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
138 V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
139 $vgpr2 = V_MOV_B32_e32 0, implicit $exec
140 $vgpr3 = V_MOV_B32_e32 0, implicit $exec
141 $vgpr4 = V_MOV_B32_e32 0, implicit $exec
142 $vgpr5 = V_MOV_B32_e32 0, implicit $exec
143 renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
147 name: vcmpx_vopc_write_exec_permlane16_swap_vop1__wait1
150 liveins: $vgpr0, $vgpr1
151 ; GCN-LABEL: name: vcmpx_vopc_write_exec_permlane16_swap_vop1__wait1
152 ; GCN: liveins: $vgpr0, $vgpr1
154 ; GCN-NEXT: V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
155 ; GCN-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec
156 ; GCN-NEXT: $vgpr3 = V_MOV_B32_e32 0, implicit $exec
157 ; GCN-NEXT: $vgpr4 = V_MOV_B32_e32 0, implicit $exec
159 ; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
160 V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
161 $vgpr2 = V_MOV_B32_e32 0, implicit $exec
162 $vgpr3 = V_MOV_B32_e32 0, implicit $exec
163 $vgpr4 = V_MOV_B32_e32 0, implicit $exec
164 renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
168 name: valu_write_vdst_read_permlane16_swap_0
172 ; GCN-LABEL: name: valu_write_vdst_read_permlane16_swap_0
173 ; GCN: liveins: $vgpr1
175 ; GCN-NEXT: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
177 ; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
178 $vgpr0 = V_MOV_B32_e32 0, implicit $exec
179 renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
183 name: valu_write_vdst_read_permlane16_swap_1
187 ; GCN-LABEL: name: valu_write_vdst_read_permlane16_swap_1
188 ; GCN: liveins: $vgpr0
190 ; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
192 ; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
193 $vgpr1 = V_MOV_B32_e32 0, implicit $exec
194 renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
198 name: valu_write_vdst_read_permlane32_swap_0
202 ; GCN-LABEL: name: valu_write_vdst_read_permlane32_swap_0
203 ; GCN: liveins: $vgpr1
205 ; GCN-NEXT: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
207 ; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
208 $vgpr0 = V_MOV_B32_e32 0, implicit $exec
209 renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
213 name: valu_write_vdst_read_permlane32_swap_1
217 ; GCN-LABEL: name: valu_write_vdst_read_permlane32_swap_1
218 ; GCN: liveins: $vgpr0
220 ; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
222 ; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
223 $vgpr1 = V_MOV_B32_e32 0, implicit $exec
224 renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
228 # No hazard, write of other register
229 name: valu_write_vdst_read_permlane16_swap_0_otherreg
233 ; GCN-LABEL: name: valu_write_vdst_read_permlane16_swap_0_otherreg
234 ; GCN: liveins: $vgpr1
236 ; GCN-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec
237 ; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
238 $vgpr2 = V_MOV_B32_e32 0, implicit $exec
239 renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
243 # Both permlane hazards at once.
244 name: valu_writes_vdst__vcmpx_write_exec__permlane32_swap
247 liveins: $vgpr0, $vgpr2, $vgpr3
248 ; GCN-LABEL: name: valu_writes_vdst__vcmpx_write_exec__permlane32_swap
249 ; GCN: liveins: $vgpr0, $vgpr2, $vgpr3
251 ; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
252 ; GCN-NEXT: $exec = V_CMPX_EQ_I32_e64 $vgpr2, $vgpr3, implicit $exec
254 ; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
255 $vgpr1 = V_MOV_B32_e32 0, implicit $exec
256 $exec = V_CMPX_EQ_I32_e64 $vgpr2, $vgpr3, implicit $exec
257 renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
261 name: vcmpx_write_exec__valu_writes_vdst___permlane32_swap
264 liveins: $vgpr0, $vgpr2, $vgpr3
265 ; GCN-LABEL: name: vcmpx_write_exec__valu_writes_vdst___permlane32_swap
266 ; GCN: liveins: $vgpr0, $vgpr2, $vgpr3
268 ; GCN-NEXT: $exec = V_CMPX_EQ_I32_e64 $vgpr2, $vgpr3, implicit $exec
269 ; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
271 ; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
272 $exec = V_CMPX_EQ_I32_e64 $vgpr2, $vgpr3, implicit $exec
273 $vgpr1 = V_MOV_B32_e32 0, implicit $exec
274 renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
278 name: vcmpx_write_exec__valu_writes_vdstx2___permlane32_swap
281 liveins: $vgpr0, $vgpr2, $vgpr3
282 ; GCN-LABEL: name: vcmpx_write_exec__valu_writes_vdstx2___permlane32_swap
283 ; GCN: liveins: $vgpr0, $vgpr2, $vgpr3
285 ; GCN-NEXT: $exec = V_CMPX_EQ_I32_e64 $vgpr2, $vgpr3, implicit $exec
286 ; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
287 ; GCN-NEXT: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
289 ; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
290 $exec = V_CMPX_EQ_I32_e64 $vgpr2, $vgpr3, implicit $exec
291 $vgpr1 = V_MOV_B32_e32 0, implicit $exec
292 $vgpr0 = V_MOV_B32_e32 0, implicit $exec
293 renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
298 name: test_cvt_scalef32_sr_fp8_bf16_hazard
301 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
302 ; GCN-LABEL: name: test_cvt_scalef32_sr_fp8_bf16_hazard
303 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
305 ; GCN-NEXT: renamable $vgpr5 = GLOBAL_LOAD_DWORD renamable $vgpr0_vgpr1, 0, 0, implicit $exec
306 ; GCN-NEXT: S_WAITCNT 3952
307 ; GCN-NEXT: renamable $vgpr5 = V_CVT_SCALEF32_SR_FP8_BF16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr5, 0, implicit $mode, implicit $exec
308 ; GCN-NEXT: GLOBAL_STORE_DWORD killed renamable $vgpr0_vgpr1, killed renamable $vgpr5, 0, 0, implicit $exec
309 ; GCN-NEXT: S_ENDPGM 0
310 renamable $vgpr5 = GLOBAL_LOAD_DWORD renamable $vgpr0_vgpr1, 0, 0, implicit $exec
312 renamable $vgpr5 = V_CVT_SCALEF32_SR_FP8_BF16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr5, 0, implicit $mode, implicit $exec
313 GLOBAL_STORE_DWORD killed renamable $vgpr0_vgpr1, killed renamable $vgpr5, 0, 0, implicit $exec
318 name: test_cvt_scalef32_sr_fp8_f16_hazard
321 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
322 ; GCN-LABEL: name: test_cvt_scalef32_sr_fp8_f16_hazard
323 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
325 ; GCN-NEXT: renamable $vgpr5 = GLOBAL_LOAD_DWORD renamable $vgpr0_vgpr1, 0, 0, implicit $exec
326 ; GCN-NEXT: S_WAITCNT 3952
327 ; GCN-NEXT: renamable $vgpr5 = V_CVT_SCALEF32_SR_FP8_F16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr5, 0, implicit $mode, implicit $exec
328 ; GCN-NEXT: GLOBAL_STORE_DWORD killed renamable $vgpr0_vgpr1, killed renamable $vgpr5, 0, 0, implicit $exec
329 ; GCN-NEXT: S_ENDPGM 0
330 renamable $vgpr5 = GLOBAL_LOAD_DWORD renamable $vgpr0_vgpr1, 0, 0, implicit $exec
332 renamable $vgpr5 = V_CVT_SCALEF32_SR_FP8_F16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr5, 0, implicit $mode, implicit $exec
333 GLOBAL_STORE_DWORD killed renamable $vgpr0_vgpr1, killed renamable $vgpr5, 0, 0, implicit $exec
338 name: test_cvt_scalef32_sr_fp8_f32_hazard
341 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
342 ; GCN-LABEL: name: test_cvt_scalef32_sr_fp8_f32_hazard
343 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
345 ; GCN-NEXT: renamable $vgpr5 = GLOBAL_LOAD_DWORD renamable $vgpr0_vgpr1, 0, 0, implicit $exec
346 ; GCN-NEXT: S_WAITCNT 3952
347 ; GCN-NEXT: renamable $vgpr5 = V_CVT_SCALEF32_SR_FP8_F32_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr5, 0, implicit $mode, implicit $exec
349 ; GCN-NEXT: renamable $vgpr2 = V_ADD_U32_e32 4, killed $vgpr5, implicit $exec
350 ; GCN-NEXT: GLOBAL_STORE_DWORD killed renamable $vgpr0_vgpr1, killed renamable $vgpr2, 0, 0, implicit $exec
351 ; GCN-NEXT: S_ENDPGM 0
352 renamable $vgpr5 = GLOBAL_LOAD_DWORD renamable $vgpr0_vgpr1, 0, 0, implicit $exec
354 renamable $vgpr5 = V_CVT_SCALEF32_SR_FP8_F32_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr5, 0, implicit $mode, implicit $exec
355 renamable $vgpr2 = V_ADD_U32_e32 4, killed $vgpr5, implicit $exec
356 GLOBAL_STORE_DWORD killed renamable $vgpr0_vgpr1, killed renamable $vgpr2, 0, 0, implicit $exec
361 name: test_cvt_scalef32_pk_fp8_f32_hazard
364 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
365 ; GCN-LABEL: name: test_cvt_scalef32_pk_fp8_f32_hazard
366 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
368 ; GCN-NEXT: S_WAITCNT 0
369 ; GCN-NEXT: renamable $vgpr1 = V_AND_B32_e32 2147483647, killed $vgpr1, implicit $exec
370 ; GCN-NEXT: renamable $vgpr2 = V_XOR_B32_e32 -2147483648, killed $vgpr2, implicit $exec
371 ; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_PK_FP8_F32_e64 8, killed $vgpr1, 0, killed $vgpr2, 0, killed $vgpr3, killed $vgpr0, 0, implicit $mode, implicit $exec
373 ; GCN-NEXT: renamable $vgpr0 = V_PK_ADD_U16 8, killed $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec
374 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
376 renamable $vgpr1 = V_AND_B32_e32 2147483647, killed $vgpr1, implicit $exec
377 renamable $vgpr2 = V_XOR_B32_e32 -2147483648, killed $vgpr2, implicit $exec
378 renamable $vgpr0 = V_CVT_SCALEF32_PK_FP8_F32_e64 8, killed $vgpr1, 0, killed $vgpr2, 0, killed $vgpr3, killed $vgpr0, 0, implicit $mode, implicit $exec
379 renamable $vgpr0 = V_PK_ADD_U16 8, killed $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec
380 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
384 name: test_cvt_scalef32_pk_fp8_f16_hazard
387 liveins: $vgpr0, $vgpr1, $vgpr2
388 ; GCN-LABEL: name: test_cvt_scalef32_pk_fp8_f16_hazard
389 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
391 ; GCN-NEXT: S_WAITCNT 0
392 ; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_PK_FP8_F16_e64 8, killed $vgpr1, 0, killed $vgpr2, killed $vgpr0, 0, implicit $mode, implicit $exec
394 ; GCN-NEXT: renamable $vgpr0 = V_PK_ADD_U16 8, killed $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec
395 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
397 renamable $vgpr0 = V_CVT_SCALEF32_PK_FP8_F16_e64 8, killed $vgpr1, 0, killed $vgpr2, killed $vgpr0, 0, implicit $mode, implicit $exec
398 renamable $vgpr0 = V_PK_ADD_U16 8, killed $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec
399 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
403 name: test_cvt_scalef32_pk_fp8_bf16_hazard
406 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
407 ; GCN-LABEL: name: test_cvt_scalef32_pk_fp8_bf16_hazard
408 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
410 ; GCN-NEXT: S_WAITCNT 0
411 ; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
412 ; GCN-NEXT: S_WAITCNT 3952
413 ; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_SR_BF8_BF16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
415 ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
416 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
418 renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
420 renamable $vgpr0 = V_CVT_SCALEF32_SR_BF8_BF16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
421 renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
422 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
426 name: test_cvt_scalef32_sr_bf8_f16_hazard
429 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
430 ; GCN-LABEL: name: test_cvt_scalef32_sr_bf8_f16_hazard
431 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
433 ; GCN-NEXT: S_WAITCNT 0
434 ; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
435 ; GCN-NEXT: S_WAITCNT 3952
436 ; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_SR_BF8_F16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
438 ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
439 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
441 renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
443 renamable $vgpr0 = V_CVT_SCALEF32_SR_BF8_F16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
444 renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
445 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
449 name: test_cvt_scalef32_sr_bf8_f32_hazard
452 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
453 ; GCN-LABEL: name: test_cvt_scalef32_sr_bf8_f32_hazard
454 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
456 ; GCN-NEXT: S_WAITCNT 0
457 ; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
458 ; GCN-NEXT: S_WAITCNT 3952
459 ; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_SR_BF8_F32_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
461 ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
462 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
464 renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
466 renamable $vgpr0 = V_CVT_SCALEF32_SR_BF8_F32_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
467 renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
468 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
472 name: test_cvt_scalef32_pk_bf8_f32_hazard
475 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
476 ; GCN-LABEL: name: test_cvt_scalef32_pk_bf8_f32_hazard
477 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
479 ; GCN-NEXT: S_WAITCNT 0
480 ; GCN-NEXT: renamable $vgpr1 = V_AND_B32_e32 2147483647, killed $vgpr1, implicit $exec
481 ; GCN-NEXT: renamable $vgpr2 = V_XOR_B32_e32 -2147483648, killed $vgpr2, implicit $exec
482 ; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_PK_BF8_F32_e64 8, killed $vgpr1, 0, killed $vgpr2, 0, killed $vgpr3, killed $vgpr0, 0, implicit $mode, implicit $exec
484 ; GCN-NEXT: renamable $vgpr0 = V_PK_ADD_U16 8, killed $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec
485 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
487 renamable $vgpr1 = V_AND_B32_e32 2147483647, killed $vgpr1, implicit $exec
488 renamable $vgpr2 = V_XOR_B32_e32 -2147483648, killed $vgpr2, implicit $exec
489 renamable $vgpr0 = V_CVT_SCALEF32_PK_BF8_F32_e64 8, killed $vgpr1, 0, killed $vgpr2, 0, killed $vgpr3, killed $vgpr0, 0, implicit $mode, implicit $exec
490 renamable $vgpr0 = V_PK_ADD_U16 8, killed $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec
491 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
495 name: test_cvt_scalef32_pk_bf8_f16_hazard
498 liveins: $vgpr0, $vgpr1, $vgpr2
499 ; GCN-LABEL: name: test_cvt_scalef32_pk_bf8_f16_hazard
500 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
502 ; GCN-NEXT: S_WAITCNT 0
503 ; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_PK_BF8_F16_e64 8, killed $vgpr1, 0, killed $vgpr2, killed $vgpr0, 0, implicit $mode, implicit $exec
505 ; GCN-NEXT: renamable $vgpr0 = V_PK_ADD_U16 8, killed $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec
506 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
508 renamable $vgpr0 = V_CVT_SCALEF32_PK_BF8_F16_e64 8, killed $vgpr1, 0, killed $vgpr2, killed $vgpr0, 0, implicit $mode, implicit $exec
509 renamable $vgpr0 = V_PK_ADD_U16 8, killed $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec
510 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
514 name: test_cvt_scalef32_pk_bf8_bf16_hazard
517 liveins: $vgpr0, $vgpr1, $vgpr2
518 ; GCN-LABEL: name: test_cvt_scalef32_pk_bf8_bf16_hazard
519 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
521 ; GCN-NEXT: S_WAITCNT 0
522 ; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_PK_BF8_BF16_e64 8, killed $vgpr1, 0, killed $vgpr2, killed $vgpr0, 0, implicit $mode, implicit $exec
524 ; GCN-NEXT: renamable $vgpr0 = V_PK_ADD_U16 8, killed $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec
525 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
527 renamable $vgpr0 = V_CVT_SCALEF32_PK_BF8_BF16_e64 8, killed $vgpr1, 0, killed $vgpr2, killed $vgpr0, 0, implicit $mode, implicit $exec
528 renamable $vgpr0 = V_PK_ADD_U16 8, killed $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec
529 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
533 name: test_cvt_scalef32_pk_fp4_f32_neg_hazard_opsel0
536 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
537 ; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_f32_neg_hazard_opsel0
538 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
540 ; GCN-NEXT: S_WAITCNT 0
541 ; GCN-NEXT: renamable $vgpr1 = V_AND_B32_e32 2147483647, killed $vgpr1, implicit $exec
542 ; GCN-NEXT: renamable $vgpr2 = V_XOR_B32_e32 -2147483648, killed $vgpr2, implicit $exec
543 ; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_PK_FP4_F32_e64 0, killed $vgpr1, 0, killed $vgpr2, 0, killed $vgpr3, killed $vgpr0, 0, implicit $mode, implicit $exec
544 ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
545 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
547 renamable $vgpr1 = V_AND_B32_e32 2147483647, killed $vgpr1, implicit $exec
548 renamable $vgpr2 = V_XOR_B32_e32 -2147483648, killed $vgpr2, implicit $exec
549 renamable $vgpr0 = V_CVT_SCALEF32_PK_FP4_F32_e64 0, killed $vgpr1, 0, killed $vgpr2, 0, killed $vgpr3, killed $vgpr0, 0, implicit $mode, implicit $exec
550 renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
551 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
555 name: test_cvt_scalef32_pk_fp4_f32_opsel3_hazard
558 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
559 ; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_f32_opsel3_hazard
560 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
562 ; GCN-NEXT: S_WAITCNT 0
563 ; GCN-NEXT: renamable $vgpr1 = V_AND_B32_e32 2147483647, killed $vgpr1, implicit $exec
564 ; GCN-NEXT: renamable $vgpr2 = V_XOR_B32_e32 -2147483648, killed $vgpr2, implicit $exec
565 ; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_PK_FP4_F32_e64 8, killed $vgpr1, 0, killed $vgpr2, 4, killed $vgpr3, killed $vgpr0, 0, implicit $mode, implicit $exec
567 ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
568 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
570 renamable $vgpr1 = V_AND_B32_e32 2147483647, killed $vgpr1, implicit $exec
571 renamable $vgpr2 = V_XOR_B32_e32 -2147483648, killed $vgpr2, implicit $exec
572 renamable $vgpr0 = V_CVT_SCALEF32_PK_FP4_F32_e64 8, killed $vgpr1, 0, killed $vgpr2, 4, killed $vgpr3, killed $vgpr0, 0, implicit $mode, implicit $exec
573 renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
574 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
578 name: test_cvt_scalef32_pk_fp4_f32_opsel0_neg_fp4_as_src_hazard
581 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
582 ; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_f32_opsel0_neg_fp4_as_src_hazard
583 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
585 ; GCN-NEXT: S_WAITCNT 0
586 ; GCN-NEXT: renamable $vgpr1 = V_AND_B32_e32 2147483647, killed $vgpr1, implicit $exec
587 ; GCN-NEXT: renamable $vgpr2 = V_XOR_B32_e32 -2147483648, killed $vgpr2, implicit $exec
588 ; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_PK_FP4_F32_e64 0, killed $vgpr1, 0, killed $vgpr2, 0, killed $vgpr3, killed $vgpr0, 0, implicit $mode, implicit $exec
589 ; GCN-NEXT: renamable $vgpr1 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
590 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
592 renamable $vgpr1 = V_AND_B32_e32 2147483647, killed $vgpr1, implicit $exec
593 renamable $vgpr2 = V_XOR_B32_e32 -2147483648, killed $vgpr2, implicit $exec
594 renamable $vgpr0 = V_CVT_SCALEF32_PK_FP4_F32_e64 0, killed $vgpr1, 0, killed $vgpr2, 0, killed $vgpr3, killed $vgpr0, 0, implicit $mode, implicit $exec
595 renamable $vgpr1 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
596 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
600 name: test_cvt_scalef32_pk_fp4_f32_opsel3_neg_fp4_as_src_hazard
603 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
604 ; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_f32_opsel3_neg_fp4_as_src_hazard
605 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
607 ; GCN-NEXT: S_WAITCNT 0
608 ; GCN-NEXT: renamable $vgpr1 = V_AND_B32_e32 2147483647, killed $vgpr1, implicit $exec
609 ; GCN-NEXT: renamable $vgpr2 = V_XOR_B32_e32 -2147483648, killed $vgpr2, implicit $exec
610 ; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_PK_FP4_F32_e64 8, killed $vgpr1, 0, killed $vgpr2, 4, killed $vgpr3, killed $vgpr0, 0, implicit $mode, implicit $exec
611 ; GCN-NEXT: renamable $vgpr1 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
612 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
614 renamable $vgpr1 = V_AND_B32_e32 2147483647, killed $vgpr1, implicit $exec
615 renamable $vgpr2 = V_XOR_B32_e32 -2147483648, killed $vgpr2, implicit $exec
616 renamable $vgpr0 = V_CVT_SCALEF32_PK_FP4_F32_e64 8, killed $vgpr1, 0, killed $vgpr2, 4, killed $vgpr3, killed $vgpr0, 0, implicit $mode, implicit $exec
617 renamable $vgpr1 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
618 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
622 name: test_scalef32_sr_pk_fp4_f16_hazard
625 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
626 ; GCN-LABEL: name: test_scalef32_sr_pk_fp4_f16_hazard
627 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
629 ; GCN-NEXT: S_WAITCNT 0
630 ; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
631 ; GCN-NEXT: S_WAITCNT 3952
632 ; GCN-NEXT: early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
634 ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
635 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
637 renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
639 early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
640 renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
641 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
645 name: test_scalef32_sr_pk_fp4_bf16_opsel0_hazard
648 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
649 ; GCN-LABEL: name: test_scalef32_sr_pk_fp4_bf16_opsel0_hazard
650 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
652 ; GCN-NEXT: S_WAITCNT 0
653 ; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
654 ; GCN-NEXT: S_WAITCNT 3952
655 ; GCN-NEXT: early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_BF16_e64 0, killed $vgpr2, 0, killed $vgpr3, 0, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
657 ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
658 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
660 renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
662 early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_BF16_e64 0, killed $vgpr2, 0, killed $vgpr3, 0, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
663 renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
664 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
668 name: test_scalef32_sr_pk_fp4_bf16_opsel3_hazard
671 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
672 ; GCN-LABEL: name: test_scalef32_sr_pk_fp4_bf16_opsel3_hazard
673 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
675 ; GCN-NEXT: S_WAITCNT 0
676 ; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
677 ; GCN-NEXT: S_WAITCNT 3952
678 ; GCN-NEXT: early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_BF16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
680 ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
681 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
683 renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
685 early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_BF16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
686 renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
687 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
691 name: test_scalef32_sr_pk_fp4_bf16_opsel0_neg_fp4_as_src_hazard
694 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
695 ; GCN-LABEL: name: test_scalef32_sr_pk_fp4_bf16_opsel0_neg_fp4_as_src_hazard
696 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
698 ; GCN-NEXT: S_WAITCNT 0
699 ; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
700 ; GCN-NEXT: S_WAITCNT 3952
701 ; GCN-NEXT: early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_BF16_e64 0, killed $vgpr2, 0, killed $vgpr3, 0, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
702 ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
703 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
705 renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
707 early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_BF16_e64 0, killed $vgpr2, 0, killed $vgpr3, 0, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
708 renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
709 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
713 name: test_scalef32_sr_pk_fp4_bf16_opsel3_neg_fp4_as_src_hazard
716 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
717 ; GCN-LABEL: name: test_scalef32_sr_pk_fp4_bf16_opsel3_neg_fp4_as_src_hazard
718 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
720 ; GCN-NEXT: S_WAITCNT 0
721 ; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
722 ; GCN-NEXT: S_WAITCNT 3952
723 ; GCN-NEXT: early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_BF16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
724 ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
725 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
727 renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
729 early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_BF16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
730 renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
731 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
735 name: test_scalef32_sr_pk_fp4_f32_opsel0_hazard
738 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5
739 ; GCN-LABEL: name: test_scalef32_sr_pk_fp4_f32_opsel0_hazard
740 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5
742 ; GCN-NEXT: S_WAITCNT 0
743 ; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
744 ; GCN-NEXT: S_WAITCNT 3952
745 ; GCN-NEXT: early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_F32_e64 0, killed $vgpr2_vgpr3, 0, killed $vgpr4, 0, killed $vgpr5, killed $vgpr0, 0, implicit $mode, implicit $exec
747 ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
748 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
750 renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
752 early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_F32_e64 0, killed $vgpr2_vgpr3, 0, killed $vgpr4, 0, killed $vgpr5, killed $vgpr0, 0, implicit $mode, implicit $exec
753 renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
754 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
758 name: test_scalef32_sr_pk_fp4_f32_opsel3_hazard
761 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5
762 ; GCN-LABEL: name: test_scalef32_sr_pk_fp4_f32_opsel3_hazard
763 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5
765 ; GCN-NEXT: S_WAITCNT 0
766 ; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
767 ; GCN-NEXT: S_WAITCNT 3952
768 ; GCN-NEXT: early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_F32_e64 8, killed $vgpr2_vgpr3, 0, killed $vgpr4, 4, killed $vgpr5, killed $vgpr0, 0, implicit $mode, implicit $exec
770 ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
771 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
773 renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
775 early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_F32_e64 8, killed $vgpr2_vgpr3, 0, killed $vgpr4, 4, killed $vgpr5, killed $vgpr0, 0, implicit $mode, implicit $exec
776 renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
777 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
781 name: test_scalef32_sr_pk_fp4_f32_opsel0_neg_fp4_as_src_hazard
784 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5
785 ; GCN-LABEL: name: test_scalef32_sr_pk_fp4_f32_opsel0_neg_fp4_as_src_hazard
786 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5
788 ; GCN-NEXT: S_WAITCNT 0
789 ; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
790 ; GCN-NEXT: S_WAITCNT 3952
791 ; GCN-NEXT: early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_F32_e64 0, killed $vgpr2_vgpr3, 0, killed $vgpr4, 0, killed $vgpr5, killed $vgpr0, 0, implicit $mode, implicit $exec
792 ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
793 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
795 renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
797 early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_F32_e64 0, killed $vgpr2_vgpr3, 0, killed $vgpr4, 0, killed $vgpr5, killed $vgpr0, 0, implicit $mode, implicit $exec
798 renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
799 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
803 name: test_scalef32_sr_pk_fp4_f32_opsel3_neg_fp4_as_src_hazard
806 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5
807 ; GCN-LABEL: name: test_scalef32_sr_pk_fp4_f32_opsel3_neg_fp4_as_src_hazard
808 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5
810 ; GCN-NEXT: S_WAITCNT 0
811 ; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
812 ; GCN-NEXT: S_WAITCNT 3952
813 ; GCN-NEXT: early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_F32_e64 8, killed $vgpr2_vgpr3, 0, killed $vgpr4, 4, killed $vgpr5, killed $vgpr0, 0, implicit $mode, implicit $exec
814 ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
815 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
817 renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
819 early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_F32_e64 8, killed $vgpr2_vgpr3, 0, killed $vgpr4, 4, killed $vgpr5, killed $vgpr0, 0, implicit $mode, implicit $exec
820 renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
821 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
825 name: test_cvt_scalef32_pk_fp4_f16_neg_opsel0_hazard
828 liveins: $vgpr0, $vgpr1, $vgpr2
829 ; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_f16_neg_opsel0_hazard
830 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
832 ; GCN-NEXT: S_WAITCNT 0
833 ; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 0, killed $vgpr0, 0, killed $vgpr1, 0, killed $vgpr2, 0, implicit $mode, implicit $exec
834 ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr2, $vgpr2, implicit $exec
835 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
837 renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 0, killed $vgpr0, 0, killed $vgpr1, 0, killed $vgpr2, 0, implicit $mode, implicit $exec
838 renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr2, $vgpr2, implicit $exec
839 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
843 name: test_cvt_scalef32_pk_fp4_f16_opsel3_hazard
846 liveins: $vgpr0, $vgpr1, $vgpr2
847 ; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_f16_opsel3_hazard
848 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
850 ; GCN-NEXT: S_WAITCNT 0
851 ; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
853 ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr2, $vgpr2, implicit $exec
854 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
856 renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
857 renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr2, $vgpr2, implicit $exec
858 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
862 name: test_cvt_scalef32_pk_fp4_f16_opsel0_neg_fp4_as_src_hazard
865 liveins: $vgpr0, $vgpr1, $vgpr2
866 ; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_f16_opsel0_neg_fp4_as_src_hazard
867 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
869 ; GCN-NEXT: S_WAITCNT 0
870 ; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 0, killed $vgpr0, 0, killed $vgpr1, 0, killed $vgpr2, 0, implicit $mode, implicit $exec
871 ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
872 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
874 renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 0, killed $vgpr0, 0, killed $vgpr1, 0, killed $vgpr2, 0, implicit $mode, implicit $exec
875 renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
876 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
880 name: test_cvt_scalef32_pk_fp4_f16_opsel3_neg_fp4_as_src_hazard
883 liveins: $vgpr0, $vgpr1, $vgpr2
884 ; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_f16_opsel3_neg_fp4_as_src_hazard
885 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
887 ; GCN-NEXT: S_WAITCNT 0
888 ; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
889 ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
890 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
892 renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
893 renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
894 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
898 name: test_cvt_scalef32_pk_fp4_bf16_neg_opsel0_hazard
901 liveins: $vgpr0, $vgpr1, $vgpr2
902 ; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_bf16_neg_opsel0_hazard
903 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
905 ; GCN-NEXT: S_WAITCNT 0
906 ; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_BF16_e64 0, killed $vgpr0, 0, killed $vgpr1, 0, killed $vgpr2, 0, implicit $mode, implicit $exec
907 ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr2, $vgpr2, implicit $exec
908 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
910 renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_BF16_e64 0, killed $vgpr0, 0, killed $vgpr1, 0, killed $vgpr2, 0, implicit $mode, implicit $exec
911 renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr2, $vgpr2, implicit $exec
912 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
916 name: test_cvt_scalef32_pk_fp4_bf16_opsel3_hazard
919 liveins: $vgpr0, $vgpr1, $vgpr2
920 ; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_bf16_opsel3_hazard
921 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
923 ; GCN-NEXT: S_WAITCNT 0
924 ; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_BF16_e64 8, killed $vgpr0, 0, killed $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
926 ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr2, $vgpr2, implicit $exec
927 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
929 renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_BF16_e64 8, killed $vgpr0, 0, killed $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
930 renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr2, $vgpr2, implicit $exec
931 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
935 name: test_cvt_scalef32_pk_fp4_bf16_opsel0_neg_fp4_as_src_hazard
938 liveins: $vgpr0, $vgpr1, $vgpr2
939 ; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_bf16_opsel0_neg_fp4_as_src_hazard
940 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
942 ; GCN-NEXT: S_WAITCNT 0
943 ; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_BF16_e64 0, killed $vgpr0, 0, killed $vgpr1, 0, killed $vgpr2, 0, implicit $mode, implicit $exec
944 ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
945 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
947 renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_BF16_e64 0, killed $vgpr0, 0, killed $vgpr1, 0, killed $vgpr2, 0, implicit $mode, implicit $exec
948 renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
949 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
953 name: test_cvt_scalef32_pk_fp4_bf16_opsel3_neg_fp4_as_src_hazard
956 liveins: $vgpr0, $vgpr1, $vgpr2
957 ; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_bf16_opsel3_neg_fp4_as_src_hazard
958 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
960 ; GCN-NEXT: S_WAITCNT 0
961 ; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_BF16_e64 8, killed $vgpr0, 0, killed $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
962 ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
963 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
965 renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_BF16_e64 8, killed $vgpr0, 0, killed $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
966 renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
967 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
971 name: test_cvt_scalef32_hazard_skipping_over_meta_instr
974 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
975 ; GCN-LABEL: name: test_cvt_scalef32_hazard_skipping_over_meta_instr
976 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
978 ; GCN-NEXT: S_WAITCNT 0
979 ; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
980 ; GCN-NEXT: S_WAITCNT 3952
981 ; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_SR_BF8_F16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
982 ; GCN-NEXT: $vgpr4 = KILL
984 ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
985 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
987 renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
989 renamable $vgpr0 = V_CVT_SCALEF32_SR_BF8_F16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
991 renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
992 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
996 name: test_cvt_f16_to_fp4_to_f16_hazard
999 liveins: $vgpr0, $vgpr1, $vgpr2
1000 ; GCN-LABEL: name: test_cvt_f16_to_fp4_to_f16_hazard
1001 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
1003 ; GCN-NEXT: S_WAITCNT 0
1004 ; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, killed $vgpr0, 0, $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
1006 ; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_PK_F16_FP4_e64 4, killed $vgpr2, 0, killed $vgpr1, 0, implicit $mode, implicit $exec
1007 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
1009 renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, killed $vgpr0, 0, $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
1010 renamable $vgpr0 = V_CVT_SCALEF32_PK_F16_FP4_e64 4, killed $vgpr2, 0, killed $vgpr1, 0, implicit $mode, implicit $exec
1011 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
1015 name: test_cvt_scalef32_pk_f16_fp4_opsel0_neg_hazard
1018 liveins: $vgpr0, $vgpr1, $vgpr2
1019 ; GCN-LABEL: name: test_cvt_scalef32_pk_f16_fp4_opsel0_neg_hazard
1020 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
1022 ; GCN-NEXT: S_WAITCNT 0
1023 ; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_PK_F16_FP4_e64 0, killed $vgpr2, 0, killed $vgpr1, 0, implicit $mode, implicit $exec
1024 ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
1025 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
1027 renamable $vgpr0 = V_CVT_SCALEF32_PK_F16_FP4_e64 0, killed $vgpr2, 0, killed $vgpr1, 0, implicit $mode, implicit $exec
1028 renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
1029 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
1034 name: test_cvt_scalef32_pk_f16_fp4_opsel3_neg_hazard
1037 liveins: $vgpr0, $vgpr1, $vgpr2
1038 ; GCN-LABEL: name: test_cvt_scalef32_pk_f16_fp4_opsel3_neg_hazard
1039 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
1041 ; GCN-NEXT: S_WAITCNT 0
1042 ; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_PK_F16_FP4_e64 4, killed $vgpr2, 4, killed $vgpr1, 0, implicit $mode, implicit $exec
1043 ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
1044 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
1046 renamable $vgpr0 = V_CVT_SCALEF32_PK_F16_FP4_e64 4, killed $vgpr2, 4, killed $vgpr1, 0, implicit $mode, implicit $exec
1047 renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
1048 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
1052 name: test_cvt_scalef32_hazard_pseudo
1055 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
1056 ; GCN-LABEL: name: test_cvt_scalef32_hazard_pseudo
1057 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
1059 ; GCN-NEXT: S_WAITCNT 0
1060 ; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
1061 ; GCN-NEXT: S_WAITCNT 3952
1062 ; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_SR_BF8_F16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
1063 ; GCN-NEXT: WAVE_BARRIER
1065 ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
1066 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
1068 renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
1070 renamable $vgpr0 = V_CVT_SCALEF32_SR_BF8_F16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
1072 renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
1073 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
1077 name: test_call_consuming_cvt_scalef32_hazard
1080 liveins: $vgpr0, $vgpr1, $vgpr2
1081 ; GCN-LABEL: name: test_call_consuming_cvt_scalef32_hazard
1082 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
1084 ; GCN-NEXT: BUNDLE implicit-def $sgpr0_sgpr1, implicit-def $sgpr0, implicit-def $sgpr0_lo16, implicit-def $sgpr0_hi16, implicit-def $sgpr1, implicit-def $sgpr1_lo16, implicit-def $sgpr1_hi16, implicit-def $scc {
1085 ; GCN-NEXT: $sgpr0_sgpr1 = S_GETPC_B64
1086 ; GCN-NEXT: $sgpr0 = S_ADD_U32 internal $sgpr0, target-flags(amdgpu-gotprel32-lo) @test_cvt_scalef32_hazard_pseudo + 4, implicit-def $scc
1087 ; GCN-NEXT: $sgpr1 = S_ADDC_U32 internal $sgpr1, target-flags(amdgpu-gotprel32-hi) @test_cvt_scalef32_hazard_pseudo + 12, implicit-def $scc, implicit internal $scc
1089 ; GCN-NEXT: renamable $sgpr0_sgpr1 = S_LOAD_DWORDX2_IMM killed renamable $sgpr0_sgpr1, 0, 0
1090 ; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
1091 ; GCN-NEXT: dead $sgpr30_sgpr31 = SI_CALL killed renamable $sgpr0_sgpr1, @test_cvt_scalef32_hazard_pseudo, csr_amdgpu_gfx90ainsts, implicit undef $sgpr4_sgpr5, implicit undef $sgpr6_sgpr7, implicit killed $sgpr8_sgpr9, implicit undef $sgpr10_sgpr11, implicit undef $sgpr12, implicit undef $sgpr13, implicit undef $sgpr14, implicit-def $sgpr15, implicit undef $vgpr31, implicit killed $vgpr2, implicit-def $vgpr2
1092 ; GCN-NEXT: SI_RETURN_TO_EPILOG killed $vgpr0
1093 BUNDLE implicit-def $sgpr0_sgpr1, implicit-def $sgpr0, implicit-def $sgpr0_lo16, implicit-def $sgpr0_hi16, implicit-def $sgpr1, implicit-def $sgpr1_lo16, implicit-def $sgpr1_hi16, implicit-def $scc {
1094 $sgpr0_sgpr1 = S_GETPC_B64
1095 $sgpr0 = S_ADD_U32 internal $sgpr0, target-flags(amdgpu-gotprel32-lo) @test_cvt_scalef32_hazard_pseudo + 4, implicit-def $scc
1096 $sgpr1 = S_ADDC_U32 internal $sgpr1, target-flags(amdgpu-gotprel32-hi) @test_cvt_scalef32_hazard_pseudo + 12, implicit-def $scc, implicit internal $scc
1098 renamable $sgpr0_sgpr1 = S_LOAD_DWORDX2_IMM killed renamable $sgpr0_sgpr1, 0, 0
1099 renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
1100 dead $sgpr30_sgpr31 = SI_CALL killed renamable $sgpr0_sgpr1, @test_cvt_scalef32_hazard_pseudo, csr_amdgpu_gfx90ainsts, implicit undef $sgpr4_sgpr5, implicit undef $sgpr6_sgpr7, implicit killed $sgpr8_sgpr9, implicit undef $sgpr10_sgpr11, implicit undef $sgpr12, implicit undef $sgpr13, implicit undef $sgpr14, implicit-def $sgpr15, implicit undef $vgpr31, implicit killed $vgpr2, implicit-def $vgpr2
1101 SI_RETURN_TO_EPILOG killed $vgpr0
1105 name: test_cvt_scalef32_inlineasm_hazard
1108 liveins: $vgpr0, $vgpr1, $vgpr2
1109 ; GCN-LABEL: name: test_cvt_scalef32_inlineasm_hazard
1110 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
1112 ; GCN-NEXT: S_WAITCNT 0
1113 ; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
1115 ; GCN-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 2228233 /* reguse:VGPR_32 */, killed renamable $vgpr2
1116 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31
1118 renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
1119 INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 2228233 /* reguse:VGPR_32 */, killed renamable $vgpr2
1120 S_SETPC_B64_return undef $sgpr30_sgpr31
1124 name: test_cvt_scale_cvt_scalef32_sr_pk_fp4_f16_opsel0_hazard
1127 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
1128 ; GCN-LABEL: name: test_cvt_scale_cvt_scalef32_sr_pk_fp4_f16_opsel0_hazard
1129 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
1131 ; GCN-NEXT: S_WAITCNT 0
1132 ; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, $vgpr0, 0, $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
1134 ; GCN-NEXT: early-clobber renamable $vgpr4 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 0, killed $vgpr0, 0, killed $vgpr3, 0, killed $vgpr1, killed $vgpr2, 0, implicit $mode, implicit $exec
1136 ; GCN-NEXT: $vgpr0 = V_MOV_B32_e32 killed $vgpr4, implicit $exec, implicit $exec
1137 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
1139 renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, $vgpr0, 0, $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
1140 early-clobber renamable $vgpr4 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 0, killed $vgpr0, 0, killed $vgpr3, 0, killed $vgpr1, killed $vgpr2, 0, implicit $mode, implicit $exec
1141 $vgpr0 = V_MOV_B32_e32 killed $vgpr4, implicit $exec, implicit $exec
1142 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
1146 name: test_cvt_scale_cvt_scalef32_sr_pk_fp4_f16_opsel3_hazard
1149 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
1150 ; GCN-LABEL: name: test_cvt_scale_cvt_scalef32_sr_pk_fp4_f16_opsel3_hazard
1151 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
1153 ; GCN-NEXT: S_WAITCNT 0
1154 ; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, $vgpr0, 0, $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
1156 ; GCN-NEXT: early-clobber renamable $vgpr4 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr3, 4, killed $vgpr1, killed $vgpr2, 0, implicit $mode, implicit $exec
1158 ; GCN-NEXT: $vgpr0 = V_MOV_B32_e32 killed $vgpr4, implicit $exec, implicit $exec
1159 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
1161 renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, $vgpr0, 0, $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
1162 early-clobber renamable $vgpr4 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr3, 4, killed $vgpr1, killed $vgpr2, 0, implicit $mode, implicit $exec
1163 $vgpr0 = V_MOV_B32_e32 killed $vgpr4, implicit $exec, implicit $exec
1164 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
1168 name: test_cvt_scale_cvt_scalef32_sr_pk_fp4_f16_opsel0_neg_fp4_as_src_hazard
1171 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
1172 ; GCN-LABEL: name: test_cvt_scale_cvt_scalef32_sr_pk_fp4_f16_opsel0_neg_fp4_as_src_hazard
1173 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
1175 ; GCN-NEXT: S_WAITCNT 0
1176 ; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 0, $vgpr0, 0, $vgpr1, 0, killed $vgpr2, 0, implicit $mode, implicit $exec
1177 ; GCN-NEXT: early-clobber renamable $vgpr4 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr3, 4, killed $vgpr1, killed $vgpr2, 0, implicit $mode, implicit $exec
1178 ; GCN-NEXT: $vgpr0 = V_MOV_B32_e32 killed $vgpr1, implicit $exec, implicit $exec
1179 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
1181 renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 0, $vgpr0, 0, $vgpr1, 0, killed $vgpr2, 0, implicit $mode, implicit $exec
1182 early-clobber renamable $vgpr4 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr3, 4, killed $vgpr1, killed $vgpr2, 0, implicit $mode, implicit $exec
1183 $vgpr0 = V_MOV_B32_e32 killed $vgpr1, implicit $exec, implicit $exec
1184 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
1188 name: test_cvt_scale_cvt_scalef32_sr_pk_fp4_f16_opsel3_neg_fp4_as_src_hazard
1191 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
1192 ; GCN-LABEL: name: test_cvt_scale_cvt_scalef32_sr_pk_fp4_f16_opsel3_neg_fp4_as_src_hazard
1193 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
1195 ; GCN-NEXT: S_WAITCNT 0
1196 ; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, $vgpr0, 0, $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
1198 ; GCN-NEXT: early-clobber renamable $vgpr4 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr3, 4, killed $vgpr1, killed $vgpr2, 0, implicit $mode, implicit $exec
1199 ; GCN-NEXT: $vgpr0 = V_MOV_B32_e32 killed $vgpr1, implicit $exec, implicit $exec
1200 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
1202 renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, $vgpr0, 0, $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
1203 early-clobber renamable $vgpr4 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr3, 4, killed $vgpr1, killed $vgpr2, 0, implicit $mode, implicit $exec
1204 $vgpr0 = V_MOV_B32_e32 killed $vgpr1, implicit $exec, implicit $exec
1205 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
1209 name: test_cvt_scale_cvt_scale_waw_hazard
1212 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
1213 ; GCN-LABEL: name: test_cvt_scale_cvt_scale_waw_hazard
1214 ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
1216 ; GCN-NEXT: S_WAITCNT 0
1217 ; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, $vgpr0, 0, $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
1219 ; GCN-NEXT: early-clobber renamable $vgpr2 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr3, 4, killed $vgpr1, killed $vgpr1, 0, implicit $mode, implicit $exec
1220 ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
1222 renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, $vgpr0, 0, $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
1223 early-clobber renamable $vgpr2 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr3, 4, killed $vgpr1, killed $vgpr1, 0, implicit $mode, implicit $exec
1224 S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0