[MachineScheduler] Fix physreg dependencies of ExitSU (#123541)
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / hazards-gfx950.mir
blob49576433ab54da0c54acbe0dd36eaa8309694ca5
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
4 ---
5 name:            vcmpx_vopc_write_exec_permlane16_swap_vop1
6 body:             |
7   bb.0:
8     liveins: $vgpr0, $vgpr1
9     ; GCN-LABEL: name: vcmpx_vopc_write_exec_permlane16_swap_vop1
10     ; GCN: liveins: $vgpr0, $vgpr1
11     ; GCN-NEXT: {{  $}}
12     ; GCN-NEXT: V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
13     ; GCN-NEXT: S_NOP 3
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
17 ...
19 ---
20 name:            vcmpx_vop3_write_exec_permlane16_swap_vop1
21 body:             |
22   bb.0:
23     liveins: $vgpr0, $vgpr1
24     ; GCN-LABEL: name: vcmpx_vop3_write_exec_permlane16_swap_vop1
25     ; GCN: liveins: $vgpr0, $vgpr1
26     ; GCN-NEXT: {{  $}}
27     ; GCN-NEXT: $exec = V_CMPX_EQ_I32_e64 $vgpr0, $vgpr1, implicit $exec
28     ; GCN-NEXT: S_NOP 3
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
32 ...
34 ---
35 name:            vcmpx_vopc_write_exec_permlane16_swap_vop3
36 body:             |
37   bb.0:
38     liveins: $vgpr0, $vgpr1
39     ; GCN-LABEL: name: vcmpx_vopc_write_exec_permlane16_swap_vop3
40     ; GCN: liveins: $vgpr0, $vgpr1
41     ; GCN-NEXT: {{  $}}
42     ; GCN-NEXT: V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
43     ; GCN-NEXT: S_NOP 3
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
47 ...
49 ---
50 name:            vcmpx_vop3_write_exec_permlane16_swap_vop3
51 body:             |
52   bb.0:
53     liveins: $vgpr0, $vgpr1
54     ; GCN-LABEL: name: vcmpx_vop3_write_exec_permlane16_swap_vop3
55     ; GCN: liveins: $vgpr0, $vgpr1
56     ; GCN-NEXT: {{  $}}
57     ; GCN-NEXT: $exec = V_CMPX_EQ_I32_e64 $vgpr0, $vgpr1, implicit $exec
58     ; GCN-NEXT: S_NOP 3
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
62 ...
64 ---
65 name:            vcmpx_vopc_write_exec_permlane32_swap_vop1
66 body:             |
67   bb.0:
68     liveins: $vgpr0, $vgpr1
69     ; GCN-LABEL: name: vcmpx_vopc_write_exec_permlane32_swap_vop1
70     ; GCN: liveins: $vgpr0, $vgpr1
71     ; GCN-NEXT: {{  $}}
72     ; GCN-NEXT: V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
73     ; GCN-NEXT: S_NOP 3
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
77 ...
79 ---
80 name:            vcmpx_vop3_write_exec_permlane32_swap_vop1
81 body:             |
82   bb.0:
83     liveins: $vgpr0, $vgpr1
84     ; GCN-LABEL: name: vcmpx_vop3_write_exec_permlane32_swap_vop1
85     ; GCN: liveins: $vgpr0, $vgpr1
86     ; GCN-NEXT: {{  $}}
87     ; GCN-NEXT: $exec = V_CMPX_EQ_I32_e64 $vgpr0, $vgpr1, implicit $exec
88     ; GCN-NEXT: S_NOP 3
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
92 ...
94 ---
95 name:            vcmpx_vopc_write_exec_permlane32_swap_vop3
96 body:             |
97   bb.0:
98     liveins: $vgpr0, $vgpr1
99     ; GCN-LABEL: name: vcmpx_vopc_write_exec_permlane32_swap_vop3
100     ; GCN: liveins: $vgpr0, $vgpr1
101     ; GCN-NEXT: {{  $}}
102     ; GCN-NEXT: V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
103     ; GCN-NEXT: S_NOP 3
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
111 body:             |
112   bb.0:
113     liveins: $vgpr0, $vgpr1
114     ; GCN-LABEL: name: vcmpx_vop3_write_exec_permlane32_swap_vop3
115     ; GCN: liveins: $vgpr0, $vgpr1
116     ; GCN-NEXT: {{  $}}
117     ; GCN-NEXT: $exec = V_CMPX_EQ_I32_e64 $vgpr0, $vgpr1, implicit $exec
118     ; GCN-NEXT: S_NOP 3
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
126 body:             |
127   bb.0:
128     liveins: $vgpr0, $vgpr1
129     ; GCN-LABEL: name: vcmpx_vopc_write_exec_permlane16_swap_vop1__nowait
130     ; GCN: liveins: $vgpr0, $vgpr1
131     ; GCN-NEXT: {{  $}}
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
148 body:             |
149   bb.0:
150     liveins: $vgpr0, $vgpr1
151     ; GCN-LABEL: name: vcmpx_vopc_write_exec_permlane16_swap_vop1__wait1
152     ; GCN: liveins: $vgpr0, $vgpr1
153     ; GCN-NEXT: {{  $}}
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
158     ; GCN-NEXT: S_NOP 0
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
169 body:             |
170   bb.0:
171     liveins: $vgpr1
172     ; GCN-LABEL: name: valu_write_vdst_read_permlane16_swap_0
173     ; GCN: liveins: $vgpr1
174     ; GCN-NEXT: {{  $}}
175     ; GCN-NEXT: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
176     ; GCN-NEXT: S_NOP 1
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
184 body:             |
185   bb.0:
186     liveins: $vgpr0
187     ; GCN-LABEL: name: valu_write_vdst_read_permlane16_swap_1
188     ; GCN: liveins: $vgpr0
189     ; GCN-NEXT: {{  $}}
190     ; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
191     ; GCN-NEXT: S_NOP 1
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
199 body:             |
200   bb.0:
201     liveins: $vgpr1
202     ; GCN-LABEL: name: valu_write_vdst_read_permlane32_swap_0
203     ; GCN: liveins: $vgpr1
204     ; GCN-NEXT: {{  $}}
205     ; GCN-NEXT: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
206     ; GCN-NEXT: S_NOP 1
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
214 body:             |
215   bb.0:
216     liveins: $vgpr0
217     ; GCN-LABEL: name: valu_write_vdst_read_permlane32_swap_1
218     ; GCN: liveins: $vgpr0
219     ; GCN-NEXT: {{  $}}
220     ; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
221     ; GCN-NEXT: S_NOP 1
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
230 body:             |
231   bb.0:
232     liveins: $vgpr1
233     ; GCN-LABEL: name: valu_write_vdst_read_permlane16_swap_0_otherreg
234     ; GCN: liveins: $vgpr1
235     ; GCN-NEXT: {{  $}}
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
245 body:             |
246   bb.0:
247     liveins: $vgpr0, $vgpr2, $vgpr3
248     ; GCN-LABEL: name: valu_writes_vdst__vcmpx_write_exec__permlane32_swap
249     ; GCN: liveins: $vgpr0, $vgpr2, $vgpr3
250     ; GCN-NEXT: {{  $}}
251     ; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
252     ; GCN-NEXT: $exec = V_CMPX_EQ_I32_e64 $vgpr2, $vgpr3, implicit $exec
253     ; GCN-NEXT: S_NOP 3
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
262 body:             |
263   bb.0:
264     liveins: $vgpr0, $vgpr2, $vgpr3
265     ; GCN-LABEL: name: vcmpx_write_exec__valu_writes_vdst___permlane32_swap
266     ; GCN: liveins: $vgpr0, $vgpr2, $vgpr3
267     ; GCN-NEXT: {{  $}}
268     ; GCN-NEXT: $exec = V_CMPX_EQ_I32_e64 $vgpr2, $vgpr3, implicit $exec
269     ; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
270     ; GCN-NEXT: S_NOP 2
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
279 body:             |
280   bb.0:
281     liveins: $vgpr0, $vgpr2, $vgpr3
282     ; GCN-LABEL: name: vcmpx_write_exec__valu_writes_vdstx2___permlane32_swap
283     ; GCN: liveins: $vgpr0, $vgpr2, $vgpr3
284     ; GCN-NEXT: {{  $}}
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
288     ; GCN-NEXT: S_NOP 1
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
299 body:             |
300   bb.0:
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
304     ; GCN-NEXT: {{  $}}
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
311     S_WAITCNT 3952
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
314     S_ENDPGM 0
318 name:            test_cvt_scalef32_sr_fp8_f16_hazard
319 body:             |
320   bb.0:
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
324     ; GCN-NEXT: {{  $}}
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
331     S_WAITCNT 3952
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
334     S_ENDPGM 0
338 name:            test_cvt_scalef32_sr_fp8_f32_hazard
339 body:             |
340   bb.0:
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
344     ; GCN-NEXT: {{  $}}
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
348     ; GCN-NEXT: S_NOP 0
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
353     S_WAITCNT 3952
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
357     S_ENDPGM 0
361 name:            test_cvt_scalef32_pk_fp8_f32_hazard
362 body:             |
363   bb.0:
364     liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
365     ; GCN-LABEL: name: test_cvt_scalef32_pk_fp8_f32_hazard
366     ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
367     ; GCN-NEXT: {{  $}}
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
372     ; GCN-NEXT: S_NOP 0
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
375     S_WAITCNT 0
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
385 body:             |
386   bb.0:
387     liveins: $vgpr0, $vgpr1, $vgpr2
388     ; GCN-LABEL: name: test_cvt_scalef32_pk_fp8_f16_hazard
389     ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
390     ; GCN-NEXT: {{  $}}
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
393     ; GCN-NEXT: S_NOP 0
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
396     S_WAITCNT 0
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
404 body:             |
405   bb.0:
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
409     ; GCN-NEXT: {{  $}}
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
414     ; GCN-NEXT: S_NOP 0
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
417     S_WAITCNT 0
418     renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
419     S_WAITCNT 3952
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
427 body:             |
428   bb.0:
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
432     ; GCN-NEXT: {{  $}}
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
437     ; GCN-NEXT: S_NOP 0
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
440     S_WAITCNT 0
441     renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
442     S_WAITCNT 3952
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
450 body:             |
451   bb.0:
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
455     ; GCN-NEXT: {{  $}}
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
460     ; GCN-NEXT: S_NOP 0
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
463     S_WAITCNT 0
464     renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
465     S_WAITCNT 3952
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
473 body:             |
474   bb.0:
475     liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
476     ; GCN-LABEL: name: test_cvt_scalef32_pk_bf8_f32_hazard
477     ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
478     ; GCN-NEXT: {{  $}}
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
483     ; GCN-NEXT: S_NOP 0
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
486     S_WAITCNT 0
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
496 body:             |
497   bb.0:
498     liveins: $vgpr0, $vgpr1, $vgpr2
499     ; GCN-LABEL: name: test_cvt_scalef32_pk_bf8_f16_hazard
500     ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
501     ; GCN-NEXT: {{  $}}
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
504     ; GCN-NEXT: S_NOP 0
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
507     S_WAITCNT 0
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
515 body:             |
516   bb.0:
517     liveins: $vgpr0, $vgpr1, $vgpr2
518     ; GCN-LABEL: name: test_cvt_scalef32_pk_bf8_bf16_hazard
519     ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
520     ; GCN-NEXT: {{  $}}
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
523     ; GCN-NEXT: S_NOP 0
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
526     S_WAITCNT 0
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
534 body:             |
535   bb.0:
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
539     ; GCN-NEXT: {{  $}}
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
546     S_WAITCNT 0
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
556 body:             |
557   bb.0:
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
561     ; GCN-NEXT: {{  $}}
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
566     ; GCN-NEXT: S_NOP 0
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
569     S_WAITCNT 0
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
579 body:             |
580   bb.0:
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
584     ; GCN-NEXT: {{  $}}
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
591     S_WAITCNT 0
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
601 body:             |
602   bb.0:
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
606     ; GCN-NEXT: {{  $}}
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
613     S_WAITCNT 0
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
623 body:             |
624   bb.0:
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
628     ; GCN-NEXT: {{  $}}
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
633     ; GCN-NEXT: S_NOP 0
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
636     S_WAITCNT 0
637     renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
638     S_WAITCNT 3952
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
646 body:             |
647   bb.0:
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
651     ; GCN-NEXT: {{  $}}
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
656     ; GCN-NEXT: S_NOP 0
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
659     S_WAITCNT 0
660     renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
661     S_WAITCNT 3952
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
669 body:             |
670   bb.0:
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
674     ; GCN-NEXT: {{  $}}
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
679     ; GCN-NEXT: S_NOP 0
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
682     S_WAITCNT 0
683     renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
684     S_WAITCNT 3952
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
692 body:             |
693   bb.0:
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
697     ; GCN-NEXT: {{  $}}
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
704     S_WAITCNT 0
705     renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
706     S_WAITCNT 3952
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
714 body:             |
715   bb.0:
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
719     ; GCN-NEXT: {{  $}}
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
726     S_WAITCNT 0
727     renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
728     S_WAITCNT 3952
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
736 body:             |
737   bb.0:
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
741     ; GCN-NEXT: {{  $}}
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
746     ; GCN-NEXT: S_NOP 0
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
749     S_WAITCNT 0
750     renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
751     S_WAITCNT 3952
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
759 body:             |
760   bb.0:
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
764     ; GCN-NEXT: {{  $}}
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
769     ; GCN-NEXT: S_NOP 0
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
772     S_WAITCNT 0
773     renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
774     S_WAITCNT 3952
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
782 body:             |
783   bb.0:
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
787     ; GCN-NEXT: {{  $}}
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
794     S_WAITCNT 0
795     renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
796     S_WAITCNT 3952
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
804 body:             |
805   bb.0:
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
809     ; GCN-NEXT: {{  $}}
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
816     S_WAITCNT 0
817     renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
818     S_WAITCNT 3952
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
826 body:             |
827   bb.0:
828     liveins: $vgpr0, $vgpr1, $vgpr2
829     ; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_f16_neg_opsel0_hazard
830     ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
831     ; GCN-NEXT: {{  $}}
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
836     S_WAITCNT 0
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
844 body:             |
845   bb.0:
846     liveins: $vgpr0, $vgpr1, $vgpr2
847     ; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_f16_opsel3_hazard
848     ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
849     ; GCN-NEXT: {{  $}}
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
852     ; GCN-NEXT: S_NOP 0
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
855     S_WAITCNT 0
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
863 body:             |
864   bb.0:
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
868     ; GCN-NEXT: {{  $}}
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
873     S_WAITCNT 0
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
881 body:             |
882   bb.0:
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
886     ; GCN-NEXT: {{  $}}
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
891     S_WAITCNT 0
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
899 body:             |
900   bb.0:
901     liveins: $vgpr0, $vgpr1, $vgpr2
902     ; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_bf16_neg_opsel0_hazard
903     ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
904     ; GCN-NEXT: {{  $}}
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
909     S_WAITCNT 0
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
917 body:             |
918   bb.0:
919     liveins: $vgpr0, $vgpr1, $vgpr2
920     ; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_bf16_opsel3_hazard
921     ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
922     ; GCN-NEXT: {{  $}}
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
925     ; GCN-NEXT: S_NOP 0
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
928     S_WAITCNT 0
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
936 body:             |
937   bb.0:
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
941     ; GCN-NEXT: {{  $}}
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
946     S_WAITCNT 0
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
954 body:             |
955   bb.0:
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
959     ; GCN-NEXT: {{  $}}
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
964     S_WAITCNT 0
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
972 body:             |
973   bb.0:
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
977     ; GCN-NEXT: {{  $}}
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
983     ; GCN-NEXT: S_NOP 0
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
986     S_WAITCNT 0
987     renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
988     S_WAITCNT 3952
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
990     $vgpr4 = KILL
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
997 body:             |
998   bb.0:
999     liveins: $vgpr0, $vgpr1, $vgpr2
1000     ; GCN-LABEL: name: test_cvt_f16_to_fp4_to_f16_hazard
1001     ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
1002     ; GCN-NEXT: {{  $}}
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
1005     ; GCN-NEXT: S_NOP 0
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
1008     S_WAITCNT 0
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
1016 body:             |
1017   bb.0:
1018     liveins: $vgpr0, $vgpr1, $vgpr2
1019     ; GCN-LABEL: name: test_cvt_scalef32_pk_f16_fp4_opsel0_neg_hazard
1020     ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
1021     ; GCN-NEXT: {{  $}}
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
1026     S_WAITCNT 0
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
1035 body:             |
1036   bb.0:
1037     liveins: $vgpr0, $vgpr1, $vgpr2
1038     ; GCN-LABEL: name: test_cvt_scalef32_pk_f16_fp4_opsel3_neg_hazard
1039     ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
1040     ; GCN-NEXT: {{  $}}
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
1045     S_WAITCNT 0
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
1053 body:             |
1054   bb.0:
1055     liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
1056     ; GCN-LABEL: name: test_cvt_scalef32_hazard_pseudo
1057     ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
1058     ; GCN-NEXT: {{  $}}
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
1064     ; GCN-NEXT: S_NOP 0
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
1067     S_WAITCNT 0
1068     renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
1069     S_WAITCNT 3952
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
1071     WAVE_BARRIER
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
1078 body:             |
1079   bb.0:
1080     liveins: $vgpr0, $vgpr1, $vgpr2
1081     ; GCN-LABEL: name: test_call_consuming_cvt_scalef32_hazard
1082     ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
1083     ; GCN-NEXT: {{  $}}
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
1088     ; GCN-NEXT: }
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
1097     }
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
1106 body:             |
1107   bb.0:
1108     liveins: $vgpr0, $vgpr1, $vgpr2
1109     ; GCN-LABEL: name: test_cvt_scalef32_inlineasm_hazard
1110     ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
1111     ; GCN-NEXT: {{  $}}
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
1114     ; GCN-NEXT: S_NOP 0
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
1117     S_WAITCNT 0
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
1125 body:             |
1126   bb.0:
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
1130     ; GCN-NEXT: {{  $}}
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
1133     ; GCN-NEXT: S_NOP 0
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
1135     ; GCN-NEXT: S_NOP 0
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
1138     S_WAITCNT 0
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
1147 body:             |
1148   bb.0:
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
1152     ; GCN-NEXT: {{  $}}
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
1155     ; GCN-NEXT: S_NOP 0
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
1157     ; GCN-NEXT: S_NOP 0
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
1160     S_WAITCNT 0
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
1169 body:             |
1170   bb.0:
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
1174     ; GCN-NEXT: {{  $}}
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
1180     S_WAITCNT 0
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
1189 body:             |
1190   bb.0:
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
1194     ; GCN-NEXT: {{  $}}
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
1197     ; GCN-NEXT: S_NOP 0
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
1201     S_WAITCNT 0
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
1210 body:             |
1211   bb.0:
1212     liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
1213     ; GCN-LABEL: name: test_cvt_scale_cvt_scale_waw_hazard
1214     ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
1215     ; GCN-NEXT: {{  $}}
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
1218     ; GCN-NEXT: S_NOP 0
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
1221     S_WAITCNT 0
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