Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / vopd-combine.mir
blob2cbabe61d1fe7c73db0e3feddc78ca2705e38201
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -march=amdgcn -mcpu=gfx1100 -verify-machineinstrs -run-pass=postmisched %s -o - | FileCheck -check-prefix=SCHED %s
3 # RUN: llc -march=amdgcn -mcpu=gfx1100 -verify-machineinstrs -run-pass=postmisched,gcn-create-vopd %s -o - | FileCheck -check-prefix=PAIR %s
5 --- |
6   @lds = external addrspace(3) global [8 x i8]
7   define void @vopd_schedule() { ret void }
8   define void @vopd_fmamk() { ret void }
9   define void @vopd_fmamk_fail() { ret void }
10   define void @vopd_cndmask() { ret void }
11   define void @vopd_mov() { ret void }
12   define void @vopd_mov_mov() { ret void }
13   define void @vopd_constants_fail() { ret void }
14   define void @vopd_constants_inlinable() { ret void }
15   define void @vopd_constants_same() { ret void }
16   define void @vopd_mov_fmaak_constants_same() { ret void }
17   define void @vopd_debug() { ret void }
18   define void @vopd_schedule_unconstrained() { ret void }
19   define void @vopd_schedule_unconstrained_2() { ret void }
20   define void @vopd_mov_fixup() { ret void }
21   define void @vopd_mov_fixup_fail() { ret void }
22   define void @vopd_no_combine_dependent_subreg() { ret void }
23 ...
25 ---
26 name:            vopd_schedule
27 tracksRegLiveness: true
28 body:             |
29   bb.0:
31     ; SCHED-LABEL: name: vopd_schedule
32     ; SCHED: $vgpr0 = IMPLICIT_DEF
33     ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
34     ; SCHED-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
35     ; SCHED-NEXT: $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
36     ; SCHED-NEXT: $vgpr6 = V_MUL_F32_e32 killed $vgpr0, $vgpr0, implicit $mode, implicit $exec
37     ; SCHED-NEXT: $vgpr4 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec
38     ; PAIR-LABEL: name: vopd_schedule
39     ; PAIR: $vgpr0 = IMPLICIT_DEF
40     ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF
41     ; PAIR-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
42     ; PAIR-NEXT: $vgpr3, $vgpr6 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32 $vgpr1, $vgpr1, killed $vgpr0, $vgpr0, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
43     ; PAIR-NEXT: $vgpr4 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec
44     $vgpr0 = IMPLICIT_DEF
45     $vgpr1 = IMPLICIT_DEF
46     $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
47     ; can fuse vgpr3 and vgpr6 writing insts only due to reg constraints
48     $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
49     $vgpr4 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
50     $vgpr6 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
52 ...
54 ---
55 name:            vopd_fmamk
56 tracksRegLiveness: true
57 body:             |
58   bb.0:
60     ; SCHED-LABEL: name: vopd_fmamk
61     ; SCHED: $vgpr2 = IMPLICIT_DEF
62     ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF
63     ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
64     ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF
65     ; SCHED-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 10, killed $vgpr3, implicit $mode, implicit $exec
66     ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 killed $vgpr1, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
67     ; PAIR-LABEL: name: vopd_fmamk
68     ; PAIR: $vgpr2 = IMPLICIT_DEF
69     ; PAIR-NEXT: $vgpr0 = IMPLICIT_DEF
70     ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF
71     ; PAIR-NEXT: $vgpr3 = IMPLICIT_DEF
72     ; PAIR-NEXT: $vgpr5, $vgpr2 = V_DUAL_FMAMK_F32_X_FMAC_F32_e32 killed $vgpr0, 10, killed $vgpr3, killed $vgpr1, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
73     $vgpr0 = IMPLICIT_DEF
74     $vgpr1 = IMPLICIT_DEF
75     $vgpr2 = IMPLICIT_DEF
76     $vgpr3 = IMPLICIT_DEF
77     ; should pair
78     $vgpr2 = V_FMAC_F32_e32 $vgpr1, $vgpr1, $vgpr2, implicit $mode, implicit $exec
79     $vgpr5 = V_FMAMK_F32 $vgpr0, 10, $vgpr3, implicit $mode, implicit $exec
81 ...
83 ---
84 name:            vopd_fmamk_fail
85 tracksRegLiveness: true
86 body:             |
87   bb.0:
89     ; SCHED-LABEL: name: vopd_fmamk_fail
90     ; SCHED: $vgpr1 = IMPLICIT_DEF
91     ; SCHED-NEXT: $vgpr2 = V_XOR_B32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
92     ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF
93     ; SCHED-NEXT: $vgpr4 = IMPLICIT_DEF
94     ; SCHED-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 10, killed $vgpr4, implicit $mode, implicit $exec
95     ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 killed $vgpr1, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
96     ; PAIR-LABEL: name: vopd_fmamk_fail
97     ; PAIR: $vgpr1 = IMPLICIT_DEF
98     ; PAIR-NEXT: $vgpr2 = V_XOR_B32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
99     ; PAIR-NEXT: $vgpr0 = IMPLICIT_DEF
100     ; PAIR-NEXT: $vgpr4 = IMPLICIT_DEF
101     ; PAIR-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 10, killed $vgpr4, implicit $mode, implicit $exec
102     ; PAIR-NEXT: $vgpr2 = V_FMAC_F32_e32 killed $vgpr1, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
103     $vgpr0 = IMPLICIT_DEF
104     $vgpr1 = IMPLICIT_DEF
105     $vgpr2 = V_XOR_B32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
106     $vgpr4 = IMPLICIT_DEF
107     ; should not pair
108     $vgpr2 = V_FMAC_F32_e32 $vgpr1, $vgpr1, $vgpr2, implicit $mode, implicit $exec
109     $vgpr5 = V_FMAMK_F32 $vgpr0, 10, $vgpr4, implicit $mode, implicit $exec
114 name:            vopd_cndmask
115 tracksRegLiveness: true
116 body:             |
117   bb.0:
118     ; SCHED-LABEL: name: vopd_cndmask
119     ; SCHED: $vgpr2 = IMPLICIT_DEF
120     ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF
121     ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
122     ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF
123     ; SCHED-NEXT: $sgpr20 = IMPLICIT_DEF
124     ; SCHED-NEXT: $vgpr4 = V_FMAMK_F32 $sgpr20, 12345, $vgpr3, implicit $mode, implicit $exec
125     ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 $sgpr20, killed $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
126     ; SCHED-NEXT: $vgpr5 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
127     ; SCHED-NEXT: $vgpr7 = V_CNDMASK_B32_e32 killed $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
128     ; SCHED-NEXT: $vgpr6 = V_ADD_F32_e32 $sgpr20, $vgpr3, implicit $mode, implicit $exec
129     ; SCHED-NEXT: $vgpr9 = V_CNDMASK_B32_e32 killed $sgpr20, killed $vgpr3, implicit $mode, implicit $exec, implicit $vcc
130     ; PAIR-LABEL: name: vopd_cndmask
131     ; PAIR: $vgpr2 = IMPLICIT_DEF
132     ; PAIR-NEXT: $vgpr0 = IMPLICIT_DEF
133     ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF
134     ; PAIR-NEXT: $vgpr3 = IMPLICIT_DEF
135     ; PAIR-NEXT: $sgpr20 = IMPLICIT_DEF
136     ; PAIR-NEXT: $vgpr4 = V_FMAMK_F32 $sgpr20, 12345, $vgpr3, implicit $mode, implicit $exec
137     ; PAIR-NEXT: $vgpr2, $vgpr5 = V_DUAL_FMAC_F32_e32_X_CNDMASK_B32_e32 $sgpr20, killed $vgpr1, killed $vgpr2, $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $vcc
138     ; PAIR-NEXT: $vgpr7 = V_CNDMASK_B32_e32 killed $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
139     ; PAIR-NEXT: $vgpr6 = V_ADD_F32_e32 $sgpr20, $vgpr3, implicit $mode, implicit $exec
140     ; PAIR-NEXT: $vgpr9 = V_CNDMASK_B32_e32 killed $sgpr20, killed $vgpr3, implicit $mode, implicit $exec, implicit $vcc
141     $vgpr0 = IMPLICIT_DEF
142     $vgpr1 = IMPLICIT_DEF
143     $vgpr2 = IMPLICIT_DEF
144     $vgpr3 = IMPLICIT_DEF
145     $sgpr20 = IMPLICIT_DEF
146     ; should pair
147     $vgpr2 = V_FMAC_F32_e32 $sgpr20, $vgpr1, $vgpr2, implicit $mode, implicit $exec
148     $vgpr5 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
149     ; should not pair, uses 3 scalars (implicit vcc)
150     $vgpr4 = V_FMAMK_F32 $sgpr20, 12345, $vgpr3, implicit $mode, implicit $exec
151     $vgpr7 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
152     ; should not pair, uses 3 scalars (implicit vcc)
153     $vgpr6 = V_ADD_F32_e32 $sgpr20, $vgpr3, implicit $mode, implicit $exec
154     $vgpr9 = V_CNDMASK_B32_e32 $sgpr20, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
159 name:            vopd_mov
160 tracksRegLiveness: true
161 body:             |
162   bb.0:
164     ; SCHED-LABEL: name: vopd_mov
165     ; SCHED: $vgpr0 = IMPLICIT_DEF
166     ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
167     ; SCHED-NEXT: $vgpr2 = V_MOV_B32_e32 killed $vgpr0, implicit $exec
168     ; SCHED-NEXT: $vgpr3 = V_ADD_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec
169     ; PAIR-LABEL: name: vopd_mov
170     ; PAIR: $vgpr0 = IMPLICIT_DEF
171     ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF
172     ; PAIR-NEXT: $vgpr2, $vgpr3 = V_DUAL_MOV_B32_e32_X_ADD_F32_e32 killed $vgpr0, killed $vgpr1, $vgpr1, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
173     $vgpr0 = IMPLICIT_DEF
174     $vgpr1 = IMPLICIT_DEF
175     $vgpr2 = V_MOV_B32_e32 $vgpr0, implicit $exec
176     $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
181 name:            vopd_mov_mov
182 tracksRegLiveness: true
183 body:             |
184   bb.0:
186     ; SCHED-LABEL: name: vopd_mov_mov
187     ; SCHED: $sgpr0 = IMPLICIT_DEF
188     ; SCHED-NEXT: $sgpr7 = IMPLICIT_DEF
189     ; SCHED-NEXT: $vgpr2 = V_MOV_B32_e32 killed $sgpr0, implicit $exec
190     ; SCHED-NEXT: $vgpr3 = V_MOV_B32_e32 killed $sgpr7, implicit $exec
191     ; PAIR-LABEL: name: vopd_mov_mov
192     ; PAIR: $sgpr0 = IMPLICIT_DEF
193     ; PAIR-NEXT: $sgpr7 = IMPLICIT_DEF
194     ; PAIR-NEXT: $vgpr2, $vgpr3 = V_DUAL_MOV_B32_e32_X_MOV_B32_e32 killed $sgpr0, killed $sgpr7, implicit $exec, implicit $exec, implicit $exec
195     $sgpr0 = IMPLICIT_DEF
196     $sgpr7 = IMPLICIT_DEF
197     $vgpr2 = V_MOV_B32_e32 $sgpr0, implicit $exec
198     $vgpr3 = V_MOV_B32_e32 $sgpr7, implicit $exec
204 name:            vopd_constants_fail
205 tracksRegLiveness: true
206 body:             |
207   bb.0:
209     ; SCHED-LABEL: name: vopd_constants_fail
210     ; SCHED: $vgpr2 = IMPLICIT_DEF
211     ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF
212     ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
213     ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF
214     ; SCHED-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 100, killed $vgpr3, implicit $mode, implicit $exec
215     ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 99, killed $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
216     ; PAIR-LABEL: name: vopd_constants_fail
217     ; PAIR: $vgpr2 = IMPLICIT_DEF
218     ; PAIR-NEXT: $vgpr0 = IMPLICIT_DEF
219     ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF
220     ; PAIR-NEXT: $vgpr3 = IMPLICIT_DEF
221     ; PAIR-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 100, killed $vgpr3, implicit $mode, implicit $exec
222     ; PAIR-NEXT: $vgpr2 = V_FMAC_F32_e32 99, killed $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
223     $vgpr0 = IMPLICIT_DEF
224     $vgpr1 = IMPLICIT_DEF
225     $vgpr2 = IMPLICIT_DEF
226     $vgpr3 = IMPLICIT_DEF
227     ; should not pair with two different literals
228     $vgpr2 = V_FMAC_F32_e32 99, $vgpr1, $vgpr2, implicit $mode, implicit $exec
229     $vgpr5 = V_FMAMK_F32 $vgpr0, 100, $vgpr3, implicit $mode, implicit $exec
234 name:            vopd_constants_inlinable
235 tracksRegLiveness: true
236 body:             |
237   bb.0:
238     ; SCHED-LABEL: name: vopd_constants_inlinable
239     ; SCHED: $vgpr2 = IMPLICIT_DEF
240     ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF
241     ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
242     ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF
243     ; SCHED-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 100, killed $vgpr3, implicit $mode, implicit $exec
244     ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 4, killed $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
245     ; PAIR-LABEL: name: vopd_constants_inlinable
246     ; PAIR: $vgpr2 = IMPLICIT_DEF
247     ; PAIR-NEXT: $vgpr0 = IMPLICIT_DEF
248     ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF
249     ; PAIR-NEXT: $vgpr3 = IMPLICIT_DEF
250     ; PAIR-NEXT: $vgpr5, $vgpr2 = V_DUAL_FMAMK_F32_X_FMAC_F32_e32 killed $vgpr0, 100, killed $vgpr3, 4, killed $vgpr1, killed $vgpr2, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
251     $vgpr0 = IMPLICIT_DEF
252     $vgpr1 = IMPLICIT_DEF
253     $vgpr2 = IMPLICIT_DEF
254     $vgpr3 = IMPLICIT_DEF
255     ; can pair since 4 is inlinable
256     $vgpr2 = V_FMAC_F32_e32 4, $vgpr1, $vgpr2, implicit $mode, implicit $exec
257     $vgpr5 = V_FMAMK_F32 $vgpr0, 100, $vgpr3, implicit $mode, implicit $exec
263 name:            vopd_constants_same
264 tracksRegLiveness: true
265 body:             |
266   bb.0:
268     ; SCHED-LABEL: name: vopd_constants_same
269     ; SCHED: $vgpr2 = IMPLICIT_DEF
270     ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF
271     ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
272     ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF
273     ; SCHED-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 100, killed $vgpr3, implicit $mode, implicit $exec
274     ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 100, killed $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
275     ; PAIR-LABEL: name: vopd_constants_same
276     ; PAIR: $vgpr2 = IMPLICIT_DEF
277     ; PAIR-NEXT: $vgpr0 = IMPLICIT_DEF
278     ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF
279     ; PAIR-NEXT: $vgpr3 = IMPLICIT_DEF
280     ; PAIR-NEXT: $vgpr5, $vgpr2 = V_DUAL_FMAMK_F32_X_FMAC_F32_e32 killed $vgpr0, 100, killed $vgpr3, 100, killed $vgpr1, killed $vgpr2, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
281     $vgpr0 = IMPLICIT_DEF
282     $vgpr1 = IMPLICIT_DEF
283     $vgpr2 = IMPLICIT_DEF
284     $vgpr3 = IMPLICIT_DEF
285     ; should be able to pair using 1 deduplicated literal
286     $vgpr2 = V_FMAC_F32_e32 100, $vgpr1, $vgpr2, implicit $mode, implicit $exec
287     $vgpr5 = V_FMAMK_F32 $vgpr0, 100, $vgpr3, implicit $mode, implicit $exec
292 name:            vopd_mov_fmaak_constants_same
293 tracksRegLiveness: true
294 body:             |
295   bb.0:
297     ; SCHED-LABEL: name: vopd_mov_fmaak_constants_same
298     ; SCHED: $vgpr0 = IMPLICIT_DEF
299     ; SCHED-NEXT: $sgpr0 = IMPLICIT_DEF
300     ; SCHED-NEXT: $vgpr1 = V_MOV_B32_e32 981467136, implicit $exec
301     ; SCHED-NEXT: $vgpr2 = V_FMAAK_F32 killed $sgpr0, killed $vgpr0, 981467136, implicit $mode, implicit $exec
302     ; PAIR-LABEL: name: vopd_mov_fmaak_constants_same
303     ; PAIR: $vgpr0 = IMPLICIT_DEF
304     ; PAIR-NEXT: $sgpr0 = IMPLICIT_DEF
305     ; PAIR-NEXT: $vgpr1, $vgpr2 = V_DUAL_MOV_B32_e32_X_FMAAK_F32 981467136, killed $sgpr0, killed $vgpr0, 981467136, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
306     $vgpr0 = IMPLICIT_DEF
307     $sgpr0 = IMPLICIT_DEF
308     ; should be able to pair using 1 deduplicated literal
309     $vgpr1 = V_MOV_B32_e32 981467136, implicit $exec
310     $vgpr2 = V_FMAAK_F32 $sgpr0, $vgpr0, 981467136, implicit $mode, implicit $exec
315 name:            vopd_debug
316 tracksRegLiveness: true
317 body:             |
318   bb.0:
320     ; SCHED-LABEL: name: vopd_debug
321     ; SCHED: $vgpr0 = IMPLICIT_DEF
322     ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
323     ; SCHED-NEXT: $vgpr3 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec
324     ; SCHED-NEXT: DBG_VALUE $vgpr0, 0, 0
325     ; SCHED-NEXT: $vgpr6 = V_MUL_F32_e32 killed $vgpr0, $vgpr0, implicit $mode, implicit $exec
326     ; PAIR-LABEL: name: vopd_debug
327     ; PAIR: $vgpr0 = IMPLICIT_DEF
328     ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF
329     ; PAIR-NEXT: $vgpr3, $vgpr6 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32 killed $vgpr1, $vgpr1, killed $vgpr0, $vgpr0, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
330     ; PAIR-NEXT: DBG_VALUE $vgpr0, 0, 0
331     $vgpr0 = IMPLICIT_DEF
332     $vgpr1 = IMPLICIT_DEF
333     ; TODO Debug values disable VOPD creation
334     $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
335     DBG_VALUE $vgpr0, 0, 0
336     $vgpr6 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
341 name:            vopd_schedule_unconstrained
342 tracksRegLiveness: true
343 body:             |
344   bb.0:
346     ; SCHED-LABEL: name: vopd_schedule_unconstrained
347     ; SCHED: $vgpr2 = IMPLICIT_DEF
348     ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF
349     ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF
350     ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
351     ; SCHED-NEXT: $vgpr4 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
352     ; SCHED-NEXT: $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
353     ; SCHED-NEXT: $vgpr6 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
354     ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 10, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
355     ; SCHED-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
356     ; SCHED-NEXT: $vgpr12 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
357     ; SCHED-NEXT: $vgpr19 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
358     ; SCHED-NEXT: $vgpr11 = V_CNDMASK_B32_e32 $vgpr0, killed $vgpr3, implicit $mode, implicit $exec, implicit $vcc
359     ; SCHED-NEXT: $vgpr17 = V_MUL_F32_e32 killed $vgpr0, $vgpr0, implicit $mode, implicit $exec
360     ; SCHED-NEXT: $vgpr10 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
361     ; SCHED-NEXT: $vgpr15 = V_CNDMASK_B32_e32 $vgpr1, killed $vgpr2, implicit $mode, implicit $exec, implicit $vcc
362     ; SCHED-NEXT: $vgpr16 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
363     ; SCHED-NEXT: $vgpr14 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec
364     ; PAIR-LABEL: name: vopd_schedule_unconstrained
365     ; PAIR: $vgpr2 = IMPLICIT_DEF
366     ; PAIR-NEXT: $vgpr3 = IMPLICIT_DEF
367     ; PAIR-NEXT: $vgpr0 = IMPLICIT_DEF
368     ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF
369     ; PAIR-NEXT: $vgpr4 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
370     ; PAIR-NEXT: $vgpr3, $vgpr6 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32 $vgpr1, $vgpr1, $vgpr0, $vgpr0, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
371     ; PAIR-NEXT: $vgpr2 = V_FMAC_F32_e32 10, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
372     ; PAIR-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
373     ; PAIR-NEXT: $vgpr12, $vgpr19 = V_DUAL_ADD_F32_e32_X_CNDMASK_B32_e32 $vgpr1, $vgpr1, $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $vcc
374     ; PAIR-NEXT: $vgpr11 = V_CNDMASK_B32_e32 $vgpr0, killed $vgpr3, implicit $mode, implicit $exec, implicit $vcc
375     ; PAIR-NEXT: $vgpr17, $vgpr10 = V_DUAL_MUL_F32_e32_X_CNDMASK_B32_e32 killed $vgpr0, $vgpr0, $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $vcc
376     ; PAIR-NEXT: $vgpr15 = V_CNDMASK_B32_e32 $vgpr1, killed $vgpr2, implicit $mode, implicit $exec, implicit $vcc
377     ; PAIR-NEXT: $vgpr16 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
378     ; PAIR-NEXT: $vgpr14 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec
379     $vgpr0 = IMPLICIT_DEF
380     $vgpr1 = IMPLICIT_DEF
381     $vgpr2 = IMPLICIT_DEF
382     $vgpr3 = IMPLICIT_DEF
383     $vgpr2 = V_FMAC_F32_e32 10, $vgpr1, $vgpr2, implicit $mode, implicit $exec
384     $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
385     $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
386     $vgpr10 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
387     $vgpr4 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
388     $vgpr6 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
389     ; $vgpr9 = V_FMAMK_F32 $vgpr0, 10, $vgpr2, implicit $mode, implicit $exec
390     $vgpr11 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
391     $vgpr19 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
392     $vgpr12 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
393     $vgpr17 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
394     ; $vgpr18 = V_FMAMK_F32 $vgpr0, 10, $vgpr3, implicit $mode, implicit $exec
395     ; $vgpr11 = V_FMAC_F32_e32 10, $vgpr1, $vgpr11, implicit $mode, implicit $exec
396     $vgpr15 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
397     $vgpr16 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
398     $vgpr14 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
403 name:            vopd_schedule_unconstrained_2
404 tracksRegLiveness: true
405 body:             |
406   bb.0:
408     ; SCHED-LABEL: name: vopd_schedule_unconstrained_2
409     ; SCHED: $vgpr2 = IMPLICIT_DEF
410     ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF
411     ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF
412     ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
413     ; SCHED-NEXT: $vgpr20 = IMPLICIT_DEF
414     ; SCHED-NEXT: $vgpr16 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
415     ; SCHED-NEXT: $vgpr35 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
416     ; SCHED-NEXT: $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
417     ; SCHED-NEXT: $vgpr6 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
418     ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 10, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
419     ; SCHED-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
420     ; SCHED-NEXT: $vgpr4 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
421     ; SCHED-NEXT: $vgpr29 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
422     ; SCHED-NEXT: $vgpr19 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
423     ; SCHED-NEXT: $vgpr20 = V_FMAC_F32_e32 10, $vgpr1, killed $vgpr20, implicit $mode, implicit $exec
424     ; SCHED-NEXT: $vgpr15 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
425     ; SCHED-NEXT: $vgpr10 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
426     ; SCHED-NEXT: $vgpr17 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
427     ; SCHED-NEXT: $vgpr11 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
428     ; SCHED-NEXT: $vgpr12 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
429     ; SCHED-NEXT: $vgpr37 = V_CNDMASK_B32_e32 $vgpr0, killed $vgpr3, implicit $mode, implicit $exec, implicit $vcc
430     ; SCHED-NEXT: $vgpr14 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
431     ; SCHED-NEXT: $vgpr20 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
432     ; SCHED-NEXT: $vgpr21 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
433     ; SCHED-NEXT: $vgpr24 = V_MUL_F32_e32 killed $vgpr0, $vgpr0, implicit $mode, implicit $exec
434     ; SCHED-NEXT: $vgpr28 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
435     ; SCHED-NEXT: $vgpr22 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
436     ; SCHED-NEXT: $vgpr31 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
437     ; SCHED-NEXT: $vgpr33 = V_CNDMASK_B32_e32 $vgpr1, killed $vgpr2, implicit $mode, implicit $exec, implicit $vcc
438     ; SCHED-NEXT: $vgpr34 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
439     ; SCHED-NEXT: $vgpr32 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec
440     ; PAIR-LABEL: name: vopd_schedule_unconstrained_2
441     ; PAIR: $vgpr2 = IMPLICIT_DEF
442     ; PAIR-NEXT: $vgpr3 = IMPLICIT_DEF
443     ; PAIR-NEXT: $vgpr0 = IMPLICIT_DEF
444     ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF
445     ; PAIR-NEXT: $vgpr20 = IMPLICIT_DEF
446     ; PAIR-NEXT: $vgpr16, $vgpr35 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32 $vgpr1, $vgpr1, $vgpr0, $vgpr0, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
447     ; PAIR-NEXT: $vgpr3, $vgpr6 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32 $vgpr1, $vgpr1, $vgpr0, $vgpr0, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
448     ; PAIR-NEXT: $vgpr2 = V_FMAC_F32_e32 10, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
449     ; PAIR-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
450     ; PAIR-NEXT: $vgpr4, $vgpr29 = V_DUAL_SUB_F32_e32_X_CNDMASK_B32_e32 $vgpr1, $vgpr1, $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $vcc
451     ; PAIR-NEXT: $vgpr19, $vgpr20 = V_DUAL_CNDMASK_B32_e32_X_FMAC_F32_e32 $vgpr0, $vgpr3, 10, $vgpr1, killed $vgpr20, implicit $vcc, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $vcc, implicit $mode, implicit $exec
452     ; PAIR-NEXT: $vgpr15 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
453     ; PAIR-NEXT: $vgpr10, $vgpr17 = V_DUAL_CNDMASK_B32_e32_X_MUL_F32_e32 $vgpr1, $vgpr2, $vgpr0, $vgpr0, implicit $vcc, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $vcc, implicit $mode, implicit $exec
454     ; PAIR-NEXT: $vgpr11, $vgpr12 = V_DUAL_CNDMASK_B32_e32_X_ADD_F32_e32 $vgpr0, $vgpr3, $vgpr1, $vgpr1, implicit $vcc, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $vcc, implicit $mode, implicit $exec
455     ; PAIR-NEXT: $vgpr37, $vgpr14 = V_DUAL_CNDMASK_B32_e32_X_SUB_F32_e32 $vgpr0, killed $vgpr3, $vgpr1, $vgpr1, implicit $vcc, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $vcc, implicit $mode, implicit $exec
456     ; PAIR-NEXT: $vgpr20 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
457     ; PAIR-NEXT: $vgpr21, $vgpr24 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32 $vgpr1, $vgpr1, killed $vgpr0, $vgpr0, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
458     ; PAIR-NEXT: $vgpr28 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
459     ; PAIR-NEXT: $vgpr22 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
460     ; PAIR-NEXT: $vgpr31 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
461     ; PAIR-NEXT: $vgpr33 = V_CNDMASK_B32_e32 $vgpr1, killed $vgpr2, implicit $mode, implicit $exec, implicit $vcc
462     ; PAIR-NEXT: $vgpr34 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
463     ; PAIR-NEXT: $vgpr32 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec
464     $vgpr0 = IMPLICIT_DEF
465     $vgpr1 = IMPLICIT_DEF
466     $vgpr2 = IMPLICIT_DEF
467     $vgpr3 = IMPLICIT_DEF
468     $vgpr2 = V_FMAC_F32_e32 10, $vgpr1, $vgpr2, implicit $mode, implicit $exec
469     $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
470     $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
471     $vgpr10 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
472     $vgpr4 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
473     $vgpr6 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
474     ; $vgpr9 = V_FMAMK_F32 $vgpr0, 10, $vgpr2, implicit $mode, implicit $exec
475     $vgpr11 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
476     $vgpr19 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
477     $vgpr12 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
478     $vgpr17 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
479     ; $vgpr18 = V_FMAMK_F32 $vgpr0, 10, $vgpr3, implicit $mode, implicit $exec
480     ; $vgpr11 = V_FMAC_F32_e32 10, $vgpr1, $vgpr11, implicit $mode, implicit $exec
481     $vgpr15 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
482     $vgpr16 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
483     $vgpr14 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
484     $vgpr20 = IMPLICIT_DEF
485     $vgpr20 = V_FMAC_F32_e32 10, $vgpr1, $vgpr20, implicit $mode, implicit $exec
486     $vgpr20 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
487     $vgpr21 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
488     $vgpr28 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
489     $vgpr22 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
490     $vgpr24 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
491     ; $vgpr9 = V_FMAMK_F32 $vgpr0, 10, $vgpr2, implicit $mode, implicit $exec
492     $vgpr29 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
493     $vgpr37 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
494     $vgpr31 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
495     $vgpr35 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
496     ; $vgpr18 = V_FMAMK_F32 $vgpr0, 10, $vgpr3, implicit $mode, implicit $exec
497     ; $vgpr11 = V_FMAC_F32_e32 10, $vgpr1, $vgpr11, implicit $mode, implicit $exec
498     $vgpr33 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
499     $vgpr34 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
500     $vgpr32 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
505 name: vopd_mov_fixup
506 tracksRegLiveness: true
507 body: |
508   bb.0:
509     ; SCHED-LABEL: name: vopd_mov_fixup
510     ; SCHED: $vgpr0 = IMPLICIT_DEF
511     ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
512     ; SCHED-NEXT: $vgpr2 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec
513     ; SCHED-NEXT: $vgpr3 = V_ADD_F32_e32 killed $vgpr0, killed $vgpr1, implicit $mode, implicit $exec
514     ; SCHED-NEXT: $vgpr4 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec
515     ; SCHED-NEXT: $vgpr5 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec
516     ; PAIR-LABEL: name: vopd_mov_fixup
517     ; PAIR: $vgpr0 = IMPLICIT_DEF
518     ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF
519     ; PAIR-NEXT: $vgpr2, $vgpr3 = V_DUAL_MOV_B32_e32_X_ADD_F32_e32 target-flags(amdgpu-abs32-lo) @lds, killed $vgpr0, killed $vgpr1, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec
520     ; PAIR-NEXT: $vgpr4, $vgpr5 = V_DUAL_MOV_B32_e32_X_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, target-flags(amdgpu-abs32-lo) @lds, implicit $exec, implicit $exec, implicit $exec
521     $vgpr0 = IMPLICIT_DEF
522     $vgpr1 = IMPLICIT_DEF
523     ; should pair
524     $vgpr2 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec
525     $vgpr3 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
526     ; should pair
527     $vgpr4 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec
528     $vgpr5 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec
532 name: vopd_mov_fixup_fail
533 tracksRegLiveness: true
534 body: |
535   bb.0:
536     ; SCHED-LABEL: name: vopd_mov_fixup_fail
537     ; SCHED: $vgpr0 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec
538     ; SCHED-NEXT: $vgpr1 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds + 4, implicit $exec
539     ; PAIR-LABEL: name: vopd_mov_fixup_fail
540     ; PAIR: $vgpr0 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec
541     ; PAIR-NEXT: $vgpr1 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds + 4, implicit $exec
542     $vgpr0 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec
543     $vgpr1 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds + 4, implicit $exec
547 name:            vopd_no_combine_dependent_subreg
548 tracksRegLiveness: true
549 body:             |
550   bb.0:
552     ; SCHED-LABEL: name: vopd_no_combine_dependent_subreg
553     ; SCHED: $vgpr0 = IMPLICIT_DEF
554     ; SCHED-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit-def $vgpr2_vgpr3, implicit $exec
555     ; SCHED-NEXT: $vgpr5 = V_ADD_F32_e32 killed $vgpr0, killed $vgpr3, implicit $mode, implicit $exec
556     ; PAIR-LABEL: name: vopd_no_combine_dependent_subreg
557     ; PAIR: $vgpr0 = IMPLICIT_DEF
558     ; PAIR-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit-def $vgpr2_vgpr3, implicit $exec
559     ; PAIR-NEXT: $vgpr5 = V_ADD_F32_e32 killed $vgpr0, killed $vgpr3, implicit $mode, implicit $exec
560     $vgpr0 = IMPLICIT_DEF
561     $vgpr2 = V_MOV_B32_e32 0, implicit-def $vgpr2_vgpr3, implicit $exec
562     $vgpr5 = V_ADD_F32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec