1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -verify-machineinstrs -run-pass=postmisched %s -o - | FileCheck -check-prefix=SCHED %s
3 # RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -verify-machineinstrs -run-pass=postmisched,gcn-create-vopd %s -o - | FileCheck -check-prefixes=PAIR,PAIR-GFX11 %s
4 # RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -verify-machineinstrs -run-pass=postmisched %s -o - | FileCheck -check-prefix=SCHED %s
5 # RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -verify-machineinstrs -run-pass=postmisched,gcn-create-vopd %s -o - | FileCheck -check-prefixes=PAIR,PAIR-GFX12 %s
8 @lds = external addrspace(3) global [8 x i8]
9 define void @vopd_schedule() { ret void }
10 define void @vopd_fmamk() { ret void }
11 define void @vopd_fmamk_fail() { ret void }
12 define void @vopd_cndmask() { ret void }
13 define void @vopd_mov() { ret void }
14 define void @vopd_mov_mov() { ret void }
15 define void @vopd_constants_fail() { ret void }
16 define void @vopd_constants_inlinable() { ret void }
17 define void @vopd_constants_same() { ret void }
18 define void @vopd_mov_fmaak_constants_same() { ret void }
19 define void @vopd_debug() { ret void }
20 define void @vopd_schedule_unconstrained() { ret void }
21 define void @vopd_schedule_unconstrained_2() { ret void }
22 define void @vopd_mov_fixup() { ret void }
23 define void @vopd_mov_fixup_fail() { ret void }
24 define void @vopd_no_combine_dependent_subreg() { ret void }
25 define void @vopd_mov_mov_same_src_bank() { ret void }
26 define void @vopd_combine_opy_overwrites_opx() { ret void }
27 define void @vopd_no_combine_opx_overwrites_opy() { ret void }
32 tracksRegLiveness: true
36 ; SCHED-LABEL: name: vopd_schedule
37 ; SCHED: $vgpr0 = IMPLICIT_DEF
38 ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
39 ; SCHED-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
40 ; SCHED-NEXT: $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
41 ; SCHED-NEXT: $vgpr6 = V_MUL_F32_e32 killed $vgpr0, $vgpr0, implicit $mode, implicit $exec
42 ; SCHED-NEXT: $vgpr4 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec
44 ; PAIR-GFX11-LABEL: name: vopd_schedule
45 ; PAIR-GFX11: $vgpr0 = IMPLICIT_DEF
46 ; PAIR-GFX11-NEXT: $vgpr1 = IMPLICIT_DEF
47 ; PAIR-GFX11-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
48 ; PAIR-GFX11-NEXT: $vgpr3, $vgpr6 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32_gfx11 $vgpr1, $vgpr1, killed $vgpr0, $vgpr0, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
49 ; PAIR-GFX11-NEXT: $vgpr4 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec
51 ; PAIR-GFX12-LABEL: name: vopd_schedule
52 ; PAIR-GFX12: $vgpr0 = IMPLICIT_DEF
53 ; PAIR-GFX12-NEXT: $vgpr1 = IMPLICIT_DEF
54 ; PAIR-GFX12-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
55 ; PAIR-GFX12-NEXT: $vgpr3, $vgpr6 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32_gfx12 $vgpr1, $vgpr1, killed $vgpr0, $vgpr0, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
56 ; PAIR-GFX12-NEXT: $vgpr4 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec
59 $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
60 ; can fuse vgpr3 and vgpr6 writing insts only due to reg constraints
61 $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
62 $vgpr4 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
63 $vgpr6 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
69 tracksRegLiveness: true
73 ; SCHED-LABEL: name: vopd_fmamk
74 ; SCHED: $vgpr2 = IMPLICIT_DEF
75 ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF
76 ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
77 ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF
78 ; SCHED-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 10, killed $vgpr3, implicit $mode, implicit $exec
79 ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 killed $vgpr1, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
81 ; PAIR-GFX11-LABEL: name: vopd_fmamk
82 ; PAIR-GFX11: $vgpr2 = IMPLICIT_DEF
83 ; PAIR-GFX11-NEXT: $vgpr0 = IMPLICIT_DEF
84 ; PAIR-GFX11-NEXT: $vgpr1 = IMPLICIT_DEF
85 ; PAIR-GFX11-NEXT: $vgpr3 = IMPLICIT_DEF
86 ; PAIR-GFX11-NEXT: $vgpr5, $vgpr2 = V_DUAL_FMAMK_F32_X_FMAC_F32_e32_gfx11 killed $vgpr0, 10, killed $vgpr3, killed $vgpr1, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
88 ; PAIR-GFX12-LABEL: name: vopd_fmamk
89 ; PAIR-GFX12: $vgpr2 = IMPLICIT_DEF
90 ; PAIR-GFX12-NEXT: $vgpr0 = IMPLICIT_DEF
91 ; PAIR-GFX12-NEXT: $vgpr1 = IMPLICIT_DEF
92 ; PAIR-GFX12-NEXT: $vgpr3 = IMPLICIT_DEF
93 ; PAIR-GFX12-NEXT: $vgpr5, $vgpr2 = V_DUAL_FMAMK_F32_X_FMAC_F32_e32_gfx12 killed $vgpr0, 10, killed $vgpr3, killed $vgpr1, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
99 $vgpr2 = V_FMAC_F32_e32 $vgpr1, $vgpr1, $vgpr2, implicit $mode, implicit $exec
100 $vgpr5 = V_FMAMK_F32 $vgpr0, 10, $vgpr3, implicit $mode, implicit $exec
105 name: vopd_fmamk_fail
106 tracksRegLiveness: true
110 ; SCHED-LABEL: name: vopd_fmamk_fail
111 ; SCHED: $vgpr1 = IMPLICIT_DEF
112 ; SCHED-NEXT: $vgpr2 = V_XOR_B32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
113 ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF
114 ; SCHED-NEXT: $vgpr4 = IMPLICIT_DEF
115 ; SCHED-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 10, killed $vgpr4, implicit $mode, implicit $exec
116 ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 killed $vgpr1, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
118 ; PAIR-LABEL: name: vopd_fmamk_fail
119 ; PAIR: $vgpr1 = IMPLICIT_DEF
120 ; PAIR-NEXT: $vgpr2 = V_XOR_B32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
121 ; PAIR-NEXT: $vgpr0 = IMPLICIT_DEF
122 ; PAIR-NEXT: $vgpr4 = IMPLICIT_DEF
123 ; PAIR-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 10, killed $vgpr4, implicit $mode, implicit $exec
124 ; PAIR-NEXT: $vgpr2 = V_FMAC_F32_e32 killed $vgpr1, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
125 $vgpr0 = IMPLICIT_DEF
126 $vgpr1 = IMPLICIT_DEF
127 $vgpr2 = V_XOR_B32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
128 $vgpr4 = IMPLICIT_DEF
130 $vgpr2 = V_FMAC_F32_e32 $vgpr1, $vgpr1, $vgpr2, implicit $mode, implicit $exec
131 $vgpr5 = V_FMAMK_F32 $vgpr0, 10, $vgpr4, implicit $mode, implicit $exec
137 tracksRegLiveness: true
141 ; SCHED-LABEL: name: vopd_cndmask
142 ; SCHED: liveins: $vcc_lo
144 ; SCHED-NEXT: $vgpr2 = IMPLICIT_DEF
145 ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF
146 ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
147 ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF
148 ; SCHED-NEXT: $sgpr20 = IMPLICIT_DEF
149 ; SCHED-NEXT: $vgpr4 = V_FMAMK_F32 $sgpr20, 12345, $vgpr3, implicit $mode, implicit $exec
150 ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 $sgpr20, killed $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
151 ; SCHED-NEXT: $vgpr5 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc_lo
152 ; SCHED-NEXT: $vgpr7 = V_CNDMASK_B32_e32 killed $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc_lo
153 ; SCHED-NEXT: $vgpr6 = V_ADD_F32_e32 $sgpr20, $vgpr3, implicit $mode, implicit $exec
154 ; SCHED-NEXT: $vgpr9 = V_CNDMASK_B32_e32 killed $sgpr20, killed $vgpr3, implicit $mode, implicit $exec, implicit killed $vcc_lo
156 ; PAIR-GFX11-LABEL: name: vopd_cndmask
157 ; PAIR-GFX11: liveins: $vcc_lo
158 ; PAIR-GFX11-NEXT: {{ $}}
159 ; PAIR-GFX11-NEXT: $vgpr2 = IMPLICIT_DEF
160 ; PAIR-GFX11-NEXT: $vgpr0 = IMPLICIT_DEF
161 ; PAIR-GFX11-NEXT: $vgpr1 = IMPLICIT_DEF
162 ; PAIR-GFX11-NEXT: $vgpr3 = IMPLICIT_DEF
163 ; PAIR-GFX11-NEXT: $sgpr20 = IMPLICIT_DEF
164 ; PAIR-GFX11-NEXT: $vgpr4 = V_FMAMK_F32 $sgpr20, 12345, $vgpr3, implicit $mode, implicit $exec
165 ; PAIR-GFX11-NEXT: $vgpr2, $vgpr5 = V_DUAL_FMAC_F32_e32_X_CNDMASK_B32_e32_gfx11 $sgpr20, killed $vgpr1, killed $vgpr2, $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc_lo, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $vcc_lo
166 ; PAIR-GFX11-NEXT: $vgpr7 = V_CNDMASK_B32_e32 killed $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc_lo
167 ; PAIR-GFX11-NEXT: $vgpr6 = V_ADD_F32_e32 $sgpr20, $vgpr3, implicit $mode, implicit $exec
168 ; PAIR-GFX11-NEXT: $vgpr9 = V_CNDMASK_B32_e32 killed $sgpr20, killed $vgpr3, implicit $mode, implicit $exec, implicit killed $vcc_lo
170 ; PAIR-GFX12-LABEL: name: vopd_cndmask
171 ; PAIR-GFX12: liveins: $vcc_lo
172 ; PAIR-GFX12-NEXT: {{ $}}
173 ; PAIR-GFX12-NEXT: $vgpr2 = IMPLICIT_DEF
174 ; PAIR-GFX12-NEXT: $vgpr0 = IMPLICIT_DEF
175 ; PAIR-GFX12-NEXT: $vgpr1 = IMPLICIT_DEF
176 ; PAIR-GFX12-NEXT: $vgpr3 = IMPLICIT_DEF
177 ; PAIR-GFX12-NEXT: $sgpr20 = IMPLICIT_DEF
178 ; PAIR-GFX12-NEXT: $vgpr4 = V_FMAMK_F32 $sgpr20, 12345, $vgpr3, implicit $mode, implicit $exec
179 ; PAIR-GFX12-NEXT: $vgpr2, $vgpr5 = V_DUAL_FMAC_F32_e32_X_CNDMASK_B32_e32_gfx12 $sgpr20, killed $vgpr1, killed $vgpr2, $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc_lo, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $vcc_lo
180 ; PAIR-GFX12-NEXT: $vgpr7 = V_CNDMASK_B32_e32 killed $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc_lo
181 ; PAIR-GFX12-NEXT: $vgpr6 = V_ADD_F32_e32 $sgpr20, $vgpr3, implicit $mode, implicit $exec
182 ; PAIR-GFX12-NEXT: $vgpr9 = V_CNDMASK_B32_e32 killed $sgpr20, killed $vgpr3, implicit $mode, implicit $exec, implicit killed $vcc_lo
183 $vgpr0 = IMPLICIT_DEF
184 $vgpr1 = IMPLICIT_DEF
185 $vgpr2 = IMPLICIT_DEF
186 $vgpr3 = IMPLICIT_DEF
187 $sgpr20 = IMPLICIT_DEF
189 $vgpr2 = V_FMAC_F32_e32 $sgpr20, $vgpr1, $vgpr2, implicit $mode, implicit $exec
190 $vgpr5 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
191 ; should not pair, uses 3 scalars (implicit vcc)
192 $vgpr4 = V_FMAMK_F32 $sgpr20, 12345, $vgpr3, implicit $mode, implicit $exec
193 $vgpr7 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
194 ; should not pair, uses 3 scalars (implicit vcc)
195 $vgpr6 = V_ADD_F32_e32 $sgpr20, $vgpr3, implicit $mode, implicit $exec
196 $vgpr9 = V_CNDMASK_B32_e32 $sgpr20, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
202 tracksRegLiveness: true
206 ; SCHED-LABEL: name: vopd_mov
207 ; SCHED: $vgpr0 = IMPLICIT_DEF
208 ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
209 ; SCHED-NEXT: $vgpr2 = V_MOV_B32_e32 killed $vgpr0, implicit $exec
210 ; SCHED-NEXT: $vgpr3 = V_ADD_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec
212 ; PAIR-GFX11-LABEL: name: vopd_mov
213 ; PAIR-GFX11: $vgpr0 = IMPLICIT_DEF
214 ; PAIR-GFX11-NEXT: $vgpr1 = IMPLICIT_DEF
215 ; PAIR-GFX11-NEXT: $vgpr2, $vgpr3 = V_DUAL_MOV_B32_e32_X_ADD_F32_e32_gfx11 killed $vgpr0, killed $vgpr1, $vgpr1, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
217 ; PAIR-GFX12-LABEL: name: vopd_mov
218 ; PAIR-GFX12: $vgpr0 = IMPLICIT_DEF
219 ; PAIR-GFX12-NEXT: $vgpr1 = IMPLICIT_DEF
220 ; PAIR-GFX12-NEXT: $vgpr2, $vgpr3 = V_DUAL_MOV_B32_e32_X_ADD_F32_e32_gfx12 killed $vgpr0, killed $vgpr1, $vgpr1, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
221 $vgpr0 = IMPLICIT_DEF
222 $vgpr1 = IMPLICIT_DEF
223 $vgpr2 = V_MOV_B32_e32 $vgpr0, implicit $exec
224 $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
230 tracksRegLiveness: true
234 ; SCHED-LABEL: name: vopd_mov_mov
235 ; SCHED: $sgpr0 = IMPLICIT_DEF
236 ; SCHED-NEXT: $sgpr7 = IMPLICIT_DEF
237 ; SCHED-NEXT: $vgpr2 = V_MOV_B32_e32 killed $sgpr0, implicit $exec
238 ; SCHED-NEXT: $vgpr3 = V_MOV_B32_e32 killed $sgpr7, implicit $exec
240 ; PAIR-GFX11-LABEL: name: vopd_mov_mov
241 ; PAIR-GFX11: $sgpr0 = IMPLICIT_DEF
242 ; PAIR-GFX11-NEXT: $sgpr7 = IMPLICIT_DEF
243 ; PAIR-GFX11-NEXT: $vgpr2, $vgpr3 = V_DUAL_MOV_B32_e32_X_MOV_B32_e32_gfx11 killed $sgpr0, killed $sgpr7, implicit $exec, implicit $exec, implicit $exec
245 ; PAIR-GFX12-LABEL: name: vopd_mov_mov
246 ; PAIR-GFX12: $sgpr0 = IMPLICIT_DEF
247 ; PAIR-GFX12-NEXT: $sgpr7 = IMPLICIT_DEF
248 ; PAIR-GFX12-NEXT: $vgpr2, $vgpr3 = V_DUAL_MOV_B32_e32_X_MOV_B32_e32_gfx12 killed $sgpr0, killed $sgpr7, implicit $exec, implicit $exec, implicit $exec
249 $sgpr0 = IMPLICIT_DEF
250 $sgpr7 = IMPLICIT_DEF
251 $vgpr2 = V_MOV_B32_e32 $sgpr0, implicit $exec
252 $vgpr3 = V_MOV_B32_e32 $sgpr7, implicit $exec
258 name: vopd_constants_fail
259 tracksRegLiveness: true
263 ; SCHED-LABEL: name: vopd_constants_fail
264 ; SCHED: $vgpr2 = IMPLICIT_DEF
265 ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF
266 ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
267 ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF
268 ; SCHED-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 100, killed $vgpr3, implicit $mode, implicit $exec
269 ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 99, killed $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
271 ; PAIR-LABEL: name: vopd_constants_fail
272 ; PAIR: $vgpr2 = IMPLICIT_DEF
273 ; PAIR-NEXT: $vgpr0 = IMPLICIT_DEF
274 ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF
275 ; PAIR-NEXT: $vgpr3 = IMPLICIT_DEF
276 ; PAIR-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 100, killed $vgpr3, implicit $mode, implicit $exec
277 ; PAIR-NEXT: $vgpr2 = V_FMAC_F32_e32 99, killed $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
278 $vgpr0 = IMPLICIT_DEF
279 $vgpr1 = IMPLICIT_DEF
280 $vgpr2 = IMPLICIT_DEF
281 $vgpr3 = IMPLICIT_DEF
282 ; should not pair with two different literals
283 $vgpr2 = V_FMAC_F32_e32 99, $vgpr1, $vgpr2, implicit $mode, implicit $exec
284 $vgpr5 = V_FMAMK_F32 $vgpr0, 100, $vgpr3, implicit $mode, implicit $exec
289 name: vopd_constants_inlinable
290 tracksRegLiveness: true
293 ; SCHED-LABEL: name: vopd_constants_inlinable
294 ; SCHED: $vgpr2 = IMPLICIT_DEF
295 ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF
296 ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
297 ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF
298 ; SCHED-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 100, killed $vgpr3, implicit $mode, implicit $exec
299 ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 4, killed $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
301 ; PAIR-GFX11-LABEL: name: vopd_constants_inlinable
302 ; PAIR-GFX11: $vgpr2 = IMPLICIT_DEF
303 ; PAIR-GFX11-NEXT: $vgpr0 = IMPLICIT_DEF
304 ; PAIR-GFX11-NEXT: $vgpr1 = IMPLICIT_DEF
305 ; PAIR-GFX11-NEXT: $vgpr3 = IMPLICIT_DEF
306 ; PAIR-GFX11-NEXT: $vgpr5, $vgpr2 = V_DUAL_FMAMK_F32_X_FMAC_F32_e32_gfx11 killed $vgpr0, 100, killed $vgpr3, 4, killed $vgpr1, killed $vgpr2, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
308 ; PAIR-GFX12-LABEL: name: vopd_constants_inlinable
309 ; PAIR-GFX12: $vgpr2 = IMPLICIT_DEF
310 ; PAIR-GFX12-NEXT: $vgpr0 = IMPLICIT_DEF
311 ; PAIR-GFX12-NEXT: $vgpr1 = IMPLICIT_DEF
312 ; PAIR-GFX12-NEXT: $vgpr3 = IMPLICIT_DEF
313 ; PAIR-GFX12-NEXT: $vgpr5, $vgpr2 = V_DUAL_FMAMK_F32_X_FMAC_F32_e32_gfx12 killed $vgpr0, 100, killed $vgpr3, 4, killed $vgpr1, killed $vgpr2, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
314 $vgpr0 = IMPLICIT_DEF
315 $vgpr1 = IMPLICIT_DEF
316 $vgpr2 = IMPLICIT_DEF
317 $vgpr3 = IMPLICIT_DEF
318 ; can pair since 4 is inlinable
319 $vgpr2 = V_FMAC_F32_e32 4, $vgpr1, $vgpr2, implicit $mode, implicit $exec
320 $vgpr5 = V_FMAMK_F32 $vgpr0, 100, $vgpr3, implicit $mode, implicit $exec
326 name: vopd_constants_same
327 tracksRegLiveness: true
331 ; SCHED-LABEL: name: vopd_constants_same
332 ; SCHED: $vgpr2 = IMPLICIT_DEF
333 ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF
334 ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
335 ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF
336 ; SCHED-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 100, killed $vgpr3, implicit $mode, implicit $exec
337 ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 100, killed $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
339 ; PAIR-GFX11-LABEL: name: vopd_constants_same
340 ; PAIR-GFX11: $vgpr2 = IMPLICIT_DEF
341 ; PAIR-GFX11-NEXT: $vgpr0 = IMPLICIT_DEF
342 ; PAIR-GFX11-NEXT: $vgpr1 = IMPLICIT_DEF
343 ; PAIR-GFX11-NEXT: $vgpr3 = IMPLICIT_DEF
344 ; PAIR-GFX11-NEXT: $vgpr5, $vgpr2 = V_DUAL_FMAMK_F32_X_FMAC_F32_e32_gfx11 killed $vgpr0, 100, killed $vgpr3, 100, killed $vgpr1, killed $vgpr2, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
346 ; PAIR-GFX12-LABEL: name: vopd_constants_same
347 ; PAIR-GFX12: $vgpr2 = IMPLICIT_DEF
348 ; PAIR-GFX12-NEXT: $vgpr0 = IMPLICIT_DEF
349 ; PAIR-GFX12-NEXT: $vgpr1 = IMPLICIT_DEF
350 ; PAIR-GFX12-NEXT: $vgpr3 = IMPLICIT_DEF
351 ; PAIR-GFX12-NEXT: $vgpr5, $vgpr2 = V_DUAL_FMAMK_F32_X_FMAC_F32_e32_gfx12 killed $vgpr0, 100, killed $vgpr3, 100, killed $vgpr1, killed $vgpr2, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
352 $vgpr0 = IMPLICIT_DEF
353 $vgpr1 = IMPLICIT_DEF
354 $vgpr2 = IMPLICIT_DEF
355 $vgpr3 = IMPLICIT_DEF
356 ; should be able to pair using 1 deduplicated literal
357 $vgpr2 = V_FMAC_F32_e32 100, $vgpr1, $vgpr2, implicit $mode, implicit $exec
358 $vgpr5 = V_FMAMK_F32 $vgpr0, 100, $vgpr3, implicit $mode, implicit $exec
363 name: vopd_mov_fmaak_constants_same
364 tracksRegLiveness: true
368 ; SCHED-LABEL: name: vopd_mov_fmaak_constants_same
369 ; SCHED: $vgpr0 = IMPLICIT_DEF
370 ; SCHED-NEXT: $sgpr0 = IMPLICIT_DEF
371 ; SCHED-NEXT: $vgpr1 = V_MOV_B32_e32 981467136, implicit $exec
372 ; SCHED-NEXT: $vgpr2 = V_FMAAK_F32 killed $sgpr0, killed $vgpr0, 981467136, implicit $mode, implicit $exec
374 ; PAIR-GFX11-LABEL: name: vopd_mov_fmaak_constants_same
375 ; PAIR-GFX11: $vgpr0 = IMPLICIT_DEF
376 ; PAIR-GFX11-NEXT: $sgpr0 = IMPLICIT_DEF
377 ; PAIR-GFX11-NEXT: $vgpr1, $vgpr2 = V_DUAL_MOV_B32_e32_X_FMAAK_F32_gfx11 981467136, killed $sgpr0, killed $vgpr0, 981467136, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
379 ; PAIR-GFX12-LABEL: name: vopd_mov_fmaak_constants_same
380 ; PAIR-GFX12: $vgpr0 = IMPLICIT_DEF
381 ; PAIR-GFX12-NEXT: $sgpr0 = IMPLICIT_DEF
382 ; PAIR-GFX12-NEXT: $vgpr1, $vgpr2 = V_DUAL_MOV_B32_e32_X_FMAAK_F32_gfx12 981467136, killed $sgpr0, killed $vgpr0, 981467136, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
383 $vgpr0 = IMPLICIT_DEF
384 $sgpr0 = IMPLICIT_DEF
385 ; should be able to pair using 1 deduplicated literal
386 $vgpr1 = V_MOV_B32_e32 981467136, implicit $exec
387 $vgpr2 = V_FMAAK_F32 $sgpr0, $vgpr0, 981467136, implicit $mode, implicit $exec
393 tracksRegLiveness: true
397 ; SCHED-LABEL: name: vopd_debug
398 ; SCHED: $vgpr0 = IMPLICIT_DEF
399 ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
400 ; SCHED-NEXT: $vgpr3 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec
401 ; SCHED-NEXT: DBG_VALUE $vgpr0, 0, 0
402 ; SCHED-NEXT: $vgpr6 = V_MUL_F32_e32 killed $vgpr0, $vgpr0, implicit $mode, implicit $exec
404 ; PAIR-GFX11-LABEL: name: vopd_debug
405 ; PAIR-GFX11: $vgpr0 = IMPLICIT_DEF
406 ; PAIR-GFX11-NEXT: $vgpr1 = IMPLICIT_DEF
407 ; PAIR-GFX11-NEXT: $vgpr3, $vgpr6 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32_gfx11 killed $vgpr1, $vgpr1, killed $vgpr0, $vgpr0, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
408 ; PAIR-GFX11-NEXT: DBG_VALUE $vgpr0, 0, 0
410 ; PAIR-GFX12-LABEL: name: vopd_debug
411 ; PAIR-GFX12: $vgpr0 = IMPLICIT_DEF
412 ; PAIR-GFX12-NEXT: $vgpr1 = IMPLICIT_DEF
413 ; PAIR-GFX12-NEXT: $vgpr3, $vgpr6 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32_gfx12 killed $vgpr1, $vgpr1, killed $vgpr0, $vgpr0, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
414 ; PAIR-GFX12-NEXT: DBG_VALUE $vgpr0, 0, 0
415 $vgpr0 = IMPLICIT_DEF
416 $vgpr1 = IMPLICIT_DEF
417 ; TODO Debug values disable VOPD creation
418 $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
419 DBG_VALUE $vgpr0, 0, 0
420 $vgpr6 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
425 name: vopd_schedule_unconstrained
426 tracksRegLiveness: true
431 ; SCHED-LABEL: name: vopd_schedule_unconstrained
432 ; SCHED: liveins: $vcc_lo
434 ; SCHED-NEXT: $vgpr2 = IMPLICIT_DEF
435 ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF
436 ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF
437 ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
438 ; SCHED-NEXT: $vgpr4 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
439 ; SCHED-NEXT: $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
440 ; SCHED-NEXT: $vgpr6 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
441 ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 10, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
442 ; SCHED-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
443 ; SCHED-NEXT: $vgpr12 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
444 ; SCHED-NEXT: $vgpr19 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc_lo
445 ; SCHED-NEXT: $vgpr11 = V_CNDMASK_B32_e32 $vgpr0, killed $vgpr3, implicit $mode, implicit $exec, implicit $vcc_lo
446 ; SCHED-NEXT: $vgpr17 = V_MUL_F32_e32 killed $vgpr0, $vgpr0, implicit $mode, implicit $exec
447 ; SCHED-NEXT: $vgpr10 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc_lo
448 ; SCHED-NEXT: $vgpr15 = V_CNDMASK_B32_e32 $vgpr1, killed $vgpr2, implicit $mode, implicit $exec, implicit killed $vcc_lo
449 ; SCHED-NEXT: $vgpr16 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
450 ; SCHED-NEXT: $vgpr14 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec
452 ; PAIR-GFX11-LABEL: name: vopd_schedule_unconstrained
453 ; PAIR-GFX11: liveins: $vcc_lo
454 ; PAIR-GFX11-NEXT: {{ $}}
455 ; PAIR-GFX11-NEXT: $vgpr2 = IMPLICIT_DEF
456 ; PAIR-GFX11-NEXT: $vgpr3 = IMPLICIT_DEF
457 ; PAIR-GFX11-NEXT: $vgpr0 = IMPLICIT_DEF
458 ; PAIR-GFX11-NEXT: $vgpr1 = IMPLICIT_DEF
459 ; PAIR-GFX11-NEXT: $vgpr4 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
460 ; PAIR-GFX11-NEXT: $vgpr3, $vgpr6 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32_gfx11 $vgpr1, $vgpr1, $vgpr0, $vgpr0, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
461 ; PAIR-GFX11-NEXT: $vgpr2 = V_FMAC_F32_e32 10, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
462 ; PAIR-GFX11-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
463 ; PAIR-GFX11-NEXT: $vgpr12, $vgpr19 = V_DUAL_ADD_F32_e32_X_CNDMASK_B32_e32_gfx11 $vgpr1, $vgpr1, $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc_lo, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $vcc_lo
464 ; PAIR-GFX11-NEXT: $vgpr11 = V_CNDMASK_B32_e32 $vgpr0, killed $vgpr3, implicit $mode, implicit $exec, implicit $vcc_lo
465 ; PAIR-GFX11-NEXT: $vgpr17, $vgpr10 = V_DUAL_MUL_F32_e32_X_CNDMASK_B32_e32_gfx11 killed $vgpr0, $vgpr0, $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc_lo, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $vcc_lo
466 ; PAIR-GFX11-NEXT: $vgpr15 = V_CNDMASK_B32_e32 $vgpr1, killed $vgpr2, implicit $mode, implicit $exec, implicit killed $vcc_lo
467 ; PAIR-GFX11-NEXT: $vgpr16 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
468 ; PAIR-GFX11-NEXT: $vgpr14 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec
470 ; PAIR-GFX12-LABEL: name: vopd_schedule_unconstrained
471 ; PAIR-GFX12: liveins: $vcc_lo
472 ; PAIR-GFX12-NEXT: {{ $}}
473 ; PAIR-GFX12-NEXT: $vgpr2 = IMPLICIT_DEF
474 ; PAIR-GFX12-NEXT: $vgpr3 = IMPLICIT_DEF
475 ; PAIR-GFX12-NEXT: $vgpr0 = IMPLICIT_DEF
476 ; PAIR-GFX12-NEXT: $vgpr1 = IMPLICIT_DEF
477 ; PAIR-GFX12-NEXT: $vgpr4 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
478 ; PAIR-GFX12-NEXT: $vgpr3, $vgpr6 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32_gfx12 $vgpr1, $vgpr1, $vgpr0, $vgpr0, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
479 ; PAIR-GFX12-NEXT: $vgpr2 = V_FMAC_F32_e32 10, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
480 ; PAIR-GFX12-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
481 ; PAIR-GFX12-NEXT: $vgpr12, $vgpr19 = V_DUAL_ADD_F32_e32_X_CNDMASK_B32_e32_gfx12 $vgpr1, $vgpr1, $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc_lo, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $vcc_lo
482 ; PAIR-GFX12-NEXT: $vgpr11 = V_CNDMASK_B32_e32 $vgpr0, killed $vgpr3, implicit $mode, implicit $exec, implicit $vcc_lo
483 ; PAIR-GFX12-NEXT: $vgpr17, $vgpr10 = V_DUAL_MUL_F32_e32_X_CNDMASK_B32_e32_gfx12 killed $vgpr0, $vgpr0, $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc_lo, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $vcc_lo
484 ; PAIR-GFX12-NEXT: $vgpr15 = V_CNDMASK_B32_e32 $vgpr1, killed $vgpr2, implicit $mode, implicit $exec, implicit killed $vcc_lo
485 ; PAIR-GFX12-NEXT: $vgpr16 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
486 ; PAIR-GFX12-NEXT: $vgpr14 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec
487 $vgpr0 = IMPLICIT_DEF
488 $vgpr1 = IMPLICIT_DEF
489 $vgpr2 = IMPLICIT_DEF
490 $vgpr3 = IMPLICIT_DEF
491 $vgpr2 = V_FMAC_F32_e32 10, $vgpr1, $vgpr2, implicit $mode, implicit $exec
492 $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
493 $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
494 $vgpr10 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
495 $vgpr4 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
496 $vgpr6 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
497 ; $vgpr9 = V_FMAMK_F32 $vgpr0, 10, $vgpr2, implicit $mode, implicit $exec
498 $vgpr11 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
499 $vgpr19 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
500 $vgpr12 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
501 $vgpr17 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
502 ; $vgpr18 = V_FMAMK_F32 $vgpr0, 10, $vgpr3, implicit $mode, implicit $exec
503 ; $vgpr11 = V_FMAC_F32_e32 10, $vgpr1, $vgpr11, implicit $mode, implicit $exec
504 $vgpr15 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
505 $vgpr16 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
506 $vgpr14 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
511 name: vopd_schedule_unconstrained_2
512 tracksRegLiveness: true
517 ; SCHED-LABEL: name: vopd_schedule_unconstrained_2
518 ; SCHED: liveins: $vcc_lo
520 ; SCHED-NEXT: $vgpr2 = IMPLICIT_DEF
521 ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF
522 ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF
523 ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
524 ; SCHED-NEXT: $vgpr20 = IMPLICIT_DEF
525 ; SCHED-NEXT: $vgpr16 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
526 ; SCHED-NEXT: $vgpr35 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
527 ; SCHED-NEXT: $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
528 ; SCHED-NEXT: $vgpr6 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
529 ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 10, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
530 ; SCHED-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
531 ; SCHED-NEXT: $vgpr4 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
532 ; SCHED-NEXT: $vgpr29 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc_lo
533 ; SCHED-NEXT: $vgpr19 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc_lo
534 ; SCHED-NEXT: $vgpr20 = V_FMAC_F32_e32 10, $vgpr1, killed $vgpr20, implicit $mode, implicit $exec
535 ; SCHED-NEXT: $vgpr15 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc_lo
536 ; SCHED-NEXT: $vgpr10 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc_lo
537 ; SCHED-NEXT: $vgpr17 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
538 ; SCHED-NEXT: $vgpr11 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc_lo
539 ; SCHED-NEXT: $vgpr12 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
540 ; SCHED-NEXT: $vgpr37 = V_CNDMASK_B32_e32 $vgpr0, killed $vgpr3, implicit $mode, implicit $exec, implicit $vcc_lo
541 ; SCHED-NEXT: $vgpr14 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
542 ; SCHED-NEXT: $vgpr20 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
543 ; SCHED-NEXT: $vgpr21 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
544 ; SCHED-NEXT: $vgpr24 = V_MUL_F32_e32 killed $vgpr0, $vgpr0, implicit $mode, implicit $exec
545 ; SCHED-NEXT: $vgpr28 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc_lo
546 ; SCHED-NEXT: $vgpr22 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
547 ; SCHED-NEXT: $vgpr31 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
548 ; SCHED-NEXT: $vgpr33 = V_CNDMASK_B32_e32 $vgpr1, killed $vgpr2, implicit $mode, implicit $exec, implicit killed $vcc_lo
549 ; SCHED-NEXT: $vgpr34 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
550 ; SCHED-NEXT: $vgpr32 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec
552 ; PAIR-GFX11-LABEL: name: vopd_schedule_unconstrained_2
553 ; PAIR-GFX11: liveins: $vcc_lo
554 ; PAIR-GFX11-NEXT: {{ $}}
555 ; PAIR-GFX11-NEXT: $vgpr2 = IMPLICIT_DEF
556 ; PAIR-GFX11-NEXT: $vgpr3 = IMPLICIT_DEF
557 ; PAIR-GFX11-NEXT: $vgpr0 = IMPLICIT_DEF
558 ; PAIR-GFX11-NEXT: $vgpr1 = IMPLICIT_DEF
559 ; PAIR-GFX11-NEXT: $vgpr20 = IMPLICIT_DEF
560 ; PAIR-GFX11-NEXT: $vgpr16, $vgpr35 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32_gfx11 $vgpr1, $vgpr1, $vgpr0, $vgpr0, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
561 ; PAIR-GFX11-NEXT: $vgpr3, $vgpr6 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32_gfx11 $vgpr1, $vgpr1, $vgpr0, $vgpr0, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
562 ; PAIR-GFX11-NEXT: $vgpr2 = V_FMAC_F32_e32 10, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
563 ; PAIR-GFX11-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
564 ; PAIR-GFX11-NEXT: $vgpr4, $vgpr29 = V_DUAL_SUB_F32_e32_X_CNDMASK_B32_e32_gfx11 $vgpr1, $vgpr1, $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc_lo, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $vcc_lo
565 ; PAIR-GFX11-NEXT: $vgpr19, $vgpr20 = V_DUAL_CNDMASK_B32_e32_X_FMAC_F32_e32_gfx11 $vgpr0, $vgpr3, 10, $vgpr1, killed $vgpr20, implicit $vcc_lo, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $vcc_lo, implicit $mode, implicit $exec
566 ; PAIR-GFX11-NEXT: $vgpr15 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc_lo
567 ; PAIR-GFX11-NEXT: $vgpr10, $vgpr17 = V_DUAL_CNDMASK_B32_e32_X_MUL_F32_e32_gfx11 $vgpr1, $vgpr2, $vgpr0, $vgpr0, implicit $vcc_lo, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $vcc_lo, implicit $mode, implicit $exec
568 ; PAIR-GFX11-NEXT: $vgpr11, $vgpr12 = V_DUAL_CNDMASK_B32_e32_X_ADD_F32_e32_gfx11 $vgpr0, $vgpr3, $vgpr1, $vgpr1, implicit $vcc_lo, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $vcc_lo, implicit $mode, implicit $exec
569 ; PAIR-GFX11-NEXT: $vgpr37, $vgpr14 = V_DUAL_CNDMASK_B32_e32_X_SUB_F32_e32_gfx11 $vgpr0, killed $vgpr3, $vgpr1, $vgpr1, implicit $vcc_lo, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $vcc_lo, implicit $mode, implicit $exec
570 ; PAIR-GFX11-NEXT: $vgpr20 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
571 ; PAIR-GFX11-NEXT: $vgpr21, $vgpr24 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32_gfx11 $vgpr1, $vgpr1, killed $vgpr0, $vgpr0, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
572 ; PAIR-GFX11-NEXT: $vgpr28 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc_lo
573 ; PAIR-GFX11-NEXT: $vgpr22 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
574 ; PAIR-GFX11-NEXT: $vgpr31 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
575 ; PAIR-GFX11-NEXT: $vgpr33 = V_CNDMASK_B32_e32 $vgpr1, killed $vgpr2, implicit $mode, implicit $exec, implicit killed $vcc_lo
576 ; PAIR-GFX11-NEXT: $vgpr34 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
577 ; PAIR-GFX11-NEXT: $vgpr32 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec
579 ; PAIR-GFX12-LABEL: name: vopd_schedule_unconstrained_2
580 ; PAIR-GFX12: liveins: $vcc_lo
581 ; PAIR-GFX12-NEXT: {{ $}}
582 ; PAIR-GFX12-NEXT: $vgpr2 = IMPLICIT_DEF
583 ; PAIR-GFX12-NEXT: $vgpr3 = IMPLICIT_DEF
584 ; PAIR-GFX12-NEXT: $vgpr0 = IMPLICIT_DEF
585 ; PAIR-GFX12-NEXT: $vgpr1 = IMPLICIT_DEF
586 ; PAIR-GFX12-NEXT: $vgpr20 = IMPLICIT_DEF
587 ; PAIR-GFX12-NEXT: $vgpr16, $vgpr35 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32_gfx12 $vgpr1, $vgpr1, $vgpr0, $vgpr0, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
588 ; PAIR-GFX12-NEXT: $vgpr3, $vgpr6 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32_gfx12 $vgpr1, $vgpr1, $vgpr0, $vgpr0, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
589 ; PAIR-GFX12-NEXT: $vgpr2 = V_FMAC_F32_e32 10, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
590 ; PAIR-GFX12-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
591 ; PAIR-GFX12-NEXT: $vgpr4, $vgpr29 = V_DUAL_SUB_F32_e32_X_CNDMASK_B32_e32_gfx12 $vgpr1, $vgpr1, $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc_lo, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $vcc_lo
592 ; PAIR-GFX12-NEXT: $vgpr19, $vgpr20 = V_DUAL_CNDMASK_B32_e32_X_FMAC_F32_e32_gfx12 $vgpr0, $vgpr3, 10, $vgpr1, killed $vgpr20, implicit $vcc_lo, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $vcc_lo, implicit $mode, implicit $exec
593 ; PAIR-GFX12-NEXT: $vgpr15 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc_lo
594 ; PAIR-GFX12-NEXT: $vgpr10, $vgpr17 = V_DUAL_CNDMASK_B32_e32_X_MUL_F32_e32_gfx12 $vgpr1, $vgpr2, $vgpr0, $vgpr0, implicit $vcc_lo, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $vcc_lo, implicit $mode, implicit $exec
595 ; PAIR-GFX12-NEXT: $vgpr11, $vgpr12 = V_DUAL_CNDMASK_B32_e32_X_ADD_F32_e32_gfx12 $vgpr0, $vgpr3, $vgpr1, $vgpr1, implicit $vcc_lo, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $vcc_lo, implicit $mode, implicit $exec
596 ; PAIR-GFX12-NEXT: $vgpr37, $vgpr14 = V_DUAL_CNDMASK_B32_e32_X_SUB_F32_e32_gfx12 $vgpr0, killed $vgpr3, $vgpr1, $vgpr1, implicit $vcc_lo, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $vcc_lo, implicit $mode, implicit $exec
597 ; PAIR-GFX12-NEXT: $vgpr20 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
598 ; PAIR-GFX12-NEXT: $vgpr21, $vgpr24 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32_gfx12 $vgpr1, $vgpr1, killed $vgpr0, $vgpr0, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
599 ; PAIR-GFX12-NEXT: $vgpr28 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc_lo
600 ; PAIR-GFX12-NEXT: $vgpr22 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
601 ; PAIR-GFX12-NEXT: $vgpr31 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
602 ; PAIR-GFX12-NEXT: $vgpr33 = V_CNDMASK_B32_e32 $vgpr1, killed $vgpr2, implicit $mode, implicit $exec, implicit killed $vcc_lo
603 ; PAIR-GFX12-NEXT: $vgpr34 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
604 ; PAIR-GFX12-NEXT: $vgpr32 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec
605 $vgpr0 = IMPLICIT_DEF
606 $vgpr1 = IMPLICIT_DEF
607 $vgpr2 = IMPLICIT_DEF
608 $vgpr3 = IMPLICIT_DEF
609 $vgpr2 = V_FMAC_F32_e32 10, $vgpr1, $vgpr2, implicit $mode, implicit $exec
610 $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
611 $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
612 $vgpr10 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
613 $vgpr4 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
614 $vgpr6 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
615 ; $vgpr9 = V_FMAMK_F32 $vgpr0, 10, $vgpr2, implicit $mode, implicit $exec
616 $vgpr11 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
617 $vgpr19 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
618 $vgpr12 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
619 $vgpr17 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
620 ; $vgpr18 = V_FMAMK_F32 $vgpr0, 10, $vgpr3, implicit $mode, implicit $exec
621 ; $vgpr11 = V_FMAC_F32_e32 10, $vgpr1, $vgpr11, implicit $mode, implicit $exec
622 $vgpr15 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
623 $vgpr16 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
624 $vgpr14 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
625 $vgpr20 = IMPLICIT_DEF
626 $vgpr20 = V_FMAC_F32_e32 10, $vgpr1, $vgpr20, implicit $mode, implicit $exec
627 $vgpr20 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
628 $vgpr21 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
629 $vgpr28 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
630 $vgpr22 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
631 $vgpr24 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
632 ; $vgpr9 = V_FMAMK_F32 $vgpr0, 10, $vgpr2, implicit $mode, implicit $exec
633 $vgpr29 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
634 $vgpr37 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
635 $vgpr31 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
636 $vgpr35 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
637 ; $vgpr18 = V_FMAMK_F32 $vgpr0, 10, $vgpr3, implicit $mode, implicit $exec
638 ; $vgpr11 = V_FMAC_F32_e32 10, $vgpr1, $vgpr11, implicit $mode, implicit $exec
639 $vgpr33 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
640 $vgpr34 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
641 $vgpr32 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
647 tracksRegLiveness: true
650 ; SCHED-LABEL: name: vopd_mov_fixup
651 ; SCHED: $vgpr0 = IMPLICIT_DEF
652 ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
653 ; SCHED-NEXT: $vgpr2 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec
654 ; SCHED-NEXT: $vgpr3 = V_ADD_F32_e32 killed $vgpr0, killed $vgpr1, implicit $mode, implicit $exec
655 ; SCHED-NEXT: $vgpr4 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec
656 ; SCHED-NEXT: $vgpr5 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec
658 ; PAIR-GFX11-LABEL: name: vopd_mov_fixup
659 ; PAIR-GFX11: $vgpr0 = IMPLICIT_DEF
660 ; PAIR-GFX11-NEXT: $vgpr1 = IMPLICIT_DEF
661 ; PAIR-GFX11-NEXT: $vgpr2, $vgpr3 = V_DUAL_MOV_B32_e32_X_ADD_F32_e32_gfx11 target-flags(amdgpu-abs32-lo) @lds, killed $vgpr0, killed $vgpr1, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
662 ; PAIR-GFX11-NEXT: $vgpr4, $vgpr5 = V_DUAL_MOV_B32_e32_X_MOV_B32_e32_gfx11 target-flags(amdgpu-abs32-lo) @lds, target-flags(amdgpu-abs32-lo) @lds, implicit $exec, implicit $exec, implicit $exec
664 ; PAIR-GFX12-LABEL: name: vopd_mov_fixup
665 ; PAIR-GFX12: $vgpr0 = IMPLICIT_DEF
666 ; PAIR-GFX12-NEXT: $vgpr1 = IMPLICIT_DEF
667 ; PAIR-GFX12-NEXT: $vgpr2, $vgpr3 = V_DUAL_MOV_B32_e32_X_ADD_F32_e32_gfx12 target-flags(amdgpu-abs32-lo) @lds, killed $vgpr0, killed $vgpr1, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
668 ; PAIR-GFX12-NEXT: $vgpr4, $vgpr5 = V_DUAL_MOV_B32_e32_X_MOV_B32_e32_gfx12 target-flags(amdgpu-abs32-lo) @lds, target-flags(amdgpu-abs32-lo) @lds, implicit $exec, implicit $exec, implicit $exec
669 $vgpr0 = IMPLICIT_DEF
670 $vgpr1 = IMPLICIT_DEF
672 $vgpr2 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec
673 $vgpr3 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
675 $vgpr4 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec
676 $vgpr5 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec
680 name: vopd_mov_fixup_fail
681 tracksRegLiveness: true
684 ; SCHED-LABEL: name: vopd_mov_fixup_fail
685 ; SCHED: $vgpr0 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec
686 ; SCHED-NEXT: $vgpr1 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds + 4, implicit $exec
688 ; PAIR-LABEL: name: vopd_mov_fixup_fail
689 ; PAIR: $vgpr0 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec
690 ; PAIR-NEXT: $vgpr1 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds + 4, implicit $exec
691 $vgpr0 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec
692 $vgpr1 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds + 4, implicit $exec
696 name: vopd_no_combine_dependent_subreg
697 tracksRegLiveness: true
701 ; SCHED-LABEL: name: vopd_no_combine_dependent_subreg
702 ; SCHED: $vgpr0 = IMPLICIT_DEF
703 ; SCHED-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit-def $vgpr2_vgpr3, implicit $exec
704 ; SCHED-NEXT: $vgpr5 = V_ADD_F32_e32 killed $vgpr0, killed $vgpr3, implicit $mode, implicit $exec
706 ; PAIR-LABEL: name: vopd_no_combine_dependent_subreg
707 ; PAIR: $vgpr0 = IMPLICIT_DEF
708 ; PAIR-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit-def $vgpr2_vgpr3, implicit $exec
709 ; PAIR-NEXT: $vgpr5 = V_ADD_F32_e32 killed $vgpr0, killed $vgpr3, implicit $mode, implicit $exec
710 $vgpr0 = IMPLICIT_DEF
711 $vgpr2 = V_MOV_B32_e32 0, implicit-def $vgpr2_vgpr3, implicit $exec
712 $vgpr5 = V_ADD_F32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec
716 name: vopd_mov_mov_same_src_bank
717 tracksRegLiveness: true
721 ; SCHED-LABEL: name: vopd_mov_mov_same_src_bank
722 ; SCHED: $vgpr1 = IMPLICIT_DEF
723 ; SCHED-NEXT: $vgpr5 = IMPLICIT_DEF
724 ; SCHED-NEXT: $vgpr2 = V_MOV_B32_e32 killed $vgpr1, implicit $exec
725 ; SCHED-NEXT: $vgpr3 = V_MOV_B32_e32 killed $vgpr5, implicit $exec
727 ; PAIR-GFX11-LABEL: name: vopd_mov_mov_same_src_bank
728 ; PAIR-GFX11: $vgpr1 = IMPLICIT_DEF
729 ; PAIR-GFX11-NEXT: $vgpr5 = IMPLICIT_DEF
730 ; PAIR-GFX11-NEXT: $vgpr2 = V_MOV_B32_e32 killed $vgpr1, implicit $exec
731 ; PAIR-GFX11-NEXT: $vgpr3 = V_MOV_B32_e32 killed $vgpr5, implicit $exec
733 ; PAIR-GFX12-LABEL: name: vopd_mov_mov_same_src_bank
734 ; PAIR-GFX12: $vgpr1 = IMPLICIT_DEF
735 ; PAIR-GFX12-NEXT: $vgpr5 = IMPLICIT_DEF
736 ; PAIR-GFX12-NEXT: $vgpr2, $vgpr3 = V_DUAL_MOV_B32_e32_X_MOV_B32_e32_gfx12 killed $vgpr1, killed $vgpr5, implicit $exec, implicit $exec, implicit $exec
737 $vgpr1 = IMPLICIT_DEF
738 $vgpr5 = IMPLICIT_DEF
739 $vgpr2 = V_MOV_B32_e32 $vgpr1, implicit $exec
740 $vgpr3 = V_MOV_B32_e32 $vgpr5, implicit $exec
744 # There is no race between mov and add, they are executed at the same time
745 name: vopd_combine_opy_overwrites_opx
746 tracksRegLiveness: true
749 ; SCHED-LABEL: name: vopd_combine_opy_overwrites_opx
750 ; SCHED: $vgpr1 = IMPLICIT_DEF
751 ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF
752 ; SCHED-NEXT: $vgpr0 = V_MOV_B32_e32 killed $vgpr1, implicit $exec
753 ; SCHED-NEXT: $vgpr1 = V_ADD_F32_e32 killed $vgpr3, $vgpr3, implicit $mode, implicit $exec
755 ; PAIR-GFX11-LABEL: name: vopd_combine_opy_overwrites_opx
756 ; PAIR-GFX11: $vgpr1 = IMPLICIT_DEF
757 ; PAIR-GFX11-NEXT: $vgpr3 = IMPLICIT_DEF
758 ; PAIR-GFX11-NEXT: $vgpr0, $vgpr1 = V_DUAL_MOV_B32_e32_X_ADD_F32_e32_gfx11 killed $vgpr1, killed $vgpr3, $vgpr3, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
760 ; PAIR-GFX12-LABEL: name: vopd_combine_opy_overwrites_opx
761 ; PAIR-GFX12: $vgpr1 = IMPLICIT_DEF
762 ; PAIR-GFX12-NEXT: $vgpr3 = IMPLICIT_DEF
763 ; PAIR-GFX12-NEXT: $vgpr0, $vgpr1 = V_DUAL_MOV_B32_e32_X_ADD_F32_e32_gfx12 killed $vgpr1, killed $vgpr3, $vgpr3, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
764 $vgpr1 = IMPLICIT_DEF
765 $vgpr3 = IMPLICIT_DEF
766 $vgpr0 = V_MOV_B32_e32 $vgpr1, implicit $exec
767 $vgpr1 = V_ADD_F32_e32 $vgpr3, $vgpr3, implicit $mode, implicit $exec
771 # OPY cannot cosume value produced by OPX
772 name: vopd_no_combine_opx_overwrites_opy
773 tracksRegLiveness: true
776 ; SCHED-LABEL: name: vopd_no_combine_opx_overwrites_opy
777 ; SCHED: $vgpr1 = IMPLICIT_DEF
778 ; SCHED-NEXT: $vgpr0 = V_MOV_B32_e32 $vgpr1, implicit $exec
779 ; SCHED-NEXT: $vgpr3 = V_ADD_F32_e32 killed $vgpr0, killed $vgpr1, implicit $mode, implicit $exec
781 ; PAIR-LABEL: name: vopd_no_combine_opx_overwrites_opy
782 ; PAIR: $vgpr1 = IMPLICIT_DEF
783 ; PAIR-NEXT: $vgpr0 = V_MOV_B32_e32 $vgpr1, implicit $exec
784 ; PAIR-NEXT: $vgpr3 = V_ADD_F32_e32 killed $vgpr0, killed $vgpr1, implicit $mode, implicit $exec
785 $vgpr1 = IMPLICIT_DEF
786 $vgpr0 = V_MOV_B32_e32 $vgpr1, implicit $exec
787 $vgpr3 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec