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
4
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...
23
24---
25name:            vopd_schedule
26tracksRegLiveness: true
27body:             |
28  bb.0:
29
30    ; SCHED-LABEL: name: vopd_schedule
31    ; SCHED: $vgpr0 = IMPLICIT_DEF
32    ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
33    ; SCHED-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
34    ; SCHED-NEXT: $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
35    ; SCHED-NEXT: $vgpr6 = V_MUL_F32_e32 killed $vgpr0, $vgpr0, implicit $mode, implicit $exec
36    ; SCHED-NEXT: $vgpr4 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec
37    ; PAIR-LABEL: name: vopd_schedule
38    ; PAIR: $vgpr0 = IMPLICIT_DEF
39    ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF
40    ; PAIR-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
41    ; PAIR-NEXT: $vgpr3, $vgpr6 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32 $vgpr1, $vgpr1, killed $vgpr0, $vgpr0, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $mode, implicit $exec
42    ; PAIR-NEXT: $vgpr4 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec
43    $vgpr0 = IMPLICIT_DEF
44    $vgpr1 = IMPLICIT_DEF
45    $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
46    ; can fuse vgpr3 and vgpr6 writing insts only due to reg constraints
47    $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
48    $vgpr4 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
49    $vgpr6 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
50
51...
52
53---
54name:            vopd_fmamk
55tracksRegLiveness: true
56body:             |
57  bb.0:
58
59    ; SCHED-LABEL: name: vopd_fmamk
60    ; SCHED: $vgpr2 = IMPLICIT_DEF
61    ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF
62    ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
63    ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF
64    ; SCHED-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 10, killed $vgpr3, implicit $mode, implicit $exec
65    ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 killed $vgpr1, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
66    ; PAIR-LABEL: name: vopd_fmamk
67    ; PAIR: $vgpr2 = IMPLICIT_DEF
68    ; PAIR-NEXT: $vgpr0 = IMPLICIT_DEF
69    ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF
70    ; PAIR-NEXT: $vgpr3 = IMPLICIT_DEF
71    ; PAIR-NEXT: $vgpr5, $vgpr2 = V_DUAL_FMAMK_F32_X_FMAC_F32_e32 killed $vgpr0, 10, killed $vgpr3, killed $vgpr1, $vgpr1, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $mode, implicit $exec
72    $vgpr0 = IMPLICIT_DEF
73    $vgpr1 = IMPLICIT_DEF
74    $vgpr2 = IMPLICIT_DEF
75    $vgpr3 = IMPLICIT_DEF
76    ; should pair
77    $vgpr2 = V_FMAC_F32_e32 $vgpr1, $vgpr1, $vgpr2, implicit $mode, implicit $exec
78    $vgpr5 = V_FMAMK_F32 $vgpr0, 10, $vgpr3, implicit $mode, implicit $exec
79
80...
81
82---
83name:            vopd_fmamk_fail
84tracksRegLiveness: true
85body:             |
86  bb.0:
87
88    ; SCHED-LABEL: name: vopd_fmamk_fail
89    ; SCHED: $vgpr1 = IMPLICIT_DEF
90    ; SCHED-NEXT: $vgpr2 = V_XOR_B32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
91    ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF
92    ; SCHED-NEXT: $vgpr4 = IMPLICIT_DEF
93    ; SCHED-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 10, killed $vgpr4, implicit $mode, implicit $exec
94    ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 killed $vgpr1, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
95    ; PAIR-LABEL: name: vopd_fmamk_fail
96    ; PAIR: $vgpr1 = IMPLICIT_DEF
97    ; PAIR-NEXT: $vgpr2 = V_XOR_B32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
98    ; PAIR-NEXT: $vgpr0 = IMPLICIT_DEF
99    ; PAIR-NEXT: $vgpr4 = IMPLICIT_DEF
100    ; PAIR-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 10, killed $vgpr4, implicit $mode, implicit $exec
101    ; PAIR-NEXT: $vgpr2 = V_FMAC_F32_e32 killed $vgpr1, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
102    $vgpr0 = IMPLICIT_DEF
103    $vgpr1 = IMPLICIT_DEF
104    $vgpr2 = V_XOR_B32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
105    $vgpr4 = IMPLICIT_DEF
106    ; should not pair
107    $vgpr2 = V_FMAC_F32_e32 $vgpr1, $vgpr1, $vgpr2, implicit $mode, implicit $exec
108    $vgpr5 = V_FMAMK_F32 $vgpr0, 10, $vgpr4, implicit $mode, implicit $exec
109
110...
111
112---
113name:            vopd_cndmask
114tracksRegLiveness: true
115body:             |
116  bb.0:
117    ; SCHED-LABEL: name: vopd_cndmask
118    ; SCHED: $vgpr2 = IMPLICIT_DEF
119    ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF
120    ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
121    ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF
122    ; SCHED-NEXT: $sgpr20 = IMPLICIT_DEF
123    ; SCHED-NEXT: $vgpr4 = V_FMAMK_F32 $sgpr20, 12345, $vgpr3, implicit $mode, implicit $exec
124    ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 $sgpr20, killed $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
125    ; SCHED-NEXT: $vgpr5 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
126    ; SCHED-NEXT: $vgpr7 = V_CNDMASK_B32_e32 killed $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
127    ; SCHED-NEXT: $vgpr6 = V_ADD_F32_e32 $sgpr20, $vgpr3, implicit $mode, implicit $exec
128    ; SCHED-NEXT: $vgpr9 = V_CNDMASK_B32_e32 killed $sgpr20, killed $vgpr3, implicit $mode, implicit $exec, implicit $vcc
129    ; PAIR-LABEL: name: vopd_cndmask
130    ; PAIR: $vgpr2 = IMPLICIT_DEF
131    ; PAIR-NEXT: $vgpr0 = IMPLICIT_DEF
132    ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF
133    ; PAIR-NEXT: $vgpr3 = IMPLICIT_DEF
134    ; PAIR-NEXT: $sgpr20 = IMPLICIT_DEF
135    ; PAIR-NEXT: $vgpr4 = V_FMAMK_F32 $sgpr20, 12345, $vgpr3, implicit $mode, implicit $exec
136    ; PAIR-NEXT: $vgpr2, $vgpr5 = V_DUAL_FMAC_F32_e32_X_CNDMASK_B32_e32 $sgpr20, killed $vgpr1, $vgpr0, $vgpr3, implicit $exec, implicit $vcc, implicit $mode, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $vcc
137    ; PAIR-NEXT: $vgpr7 = V_CNDMASK_B32_e32 killed $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
138    ; PAIR-NEXT: $vgpr6 = V_ADD_F32_e32 $sgpr20, $vgpr3, implicit $mode, implicit $exec
139    ; PAIR-NEXT: $vgpr9 = V_CNDMASK_B32_e32 killed $sgpr20, killed $vgpr3, implicit $mode, implicit $exec, implicit $vcc
140    $vgpr0 = IMPLICIT_DEF
141    $vgpr1 = IMPLICIT_DEF
142    $vgpr2 = IMPLICIT_DEF
143    $vgpr3 = IMPLICIT_DEF
144    $sgpr20 = IMPLICIT_DEF
145    ; should pair
146    $vgpr2 = V_FMAC_F32_e32 $sgpr20, $vgpr1, $vgpr2, implicit $mode, implicit $exec
147    $vgpr5 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
148    ; should not pair, uses 3 scalars (implicit vcc)
149    $vgpr4 = V_FMAMK_F32 $sgpr20, 12345, $vgpr3, implicit $mode, implicit $exec
150    $vgpr7 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
151    ; should not pair, uses 3 scalars (implicit vcc)
152    $vgpr6 = V_ADD_F32_e32 $sgpr20, $vgpr3, implicit $mode, implicit $exec
153    $vgpr9 = V_CNDMASK_B32_e32 $sgpr20, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
154
155...
156
157---
158name:            vopd_mov
159tracksRegLiveness: true
160body:             |
161  bb.0:
162
163    ; SCHED-LABEL: name: vopd_mov
164    ; SCHED: $vgpr0 = IMPLICIT_DEF
165    ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
166    ; SCHED-NEXT: $vgpr2 = V_MOV_B32_e32 killed $vgpr0, implicit $exec
167    ; SCHED-NEXT: $vgpr3 = V_ADD_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec
168    ; PAIR-LABEL: name: vopd_mov
169    ; PAIR: $vgpr0 = IMPLICIT_DEF
170    ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF
171    ; 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
172    $vgpr0 = IMPLICIT_DEF
173    $vgpr1 = IMPLICIT_DEF
174    $vgpr2 = V_MOV_B32_e32 $vgpr0, implicit $exec
175    $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
176
177...
178
179---
180name:            vopd_mov_mov
181tracksRegLiveness: true
182body:             |
183  bb.0:
184
185    ; SCHED-LABEL: name: vopd_mov_mov
186    ; SCHED: $sgpr0 = IMPLICIT_DEF
187    ; SCHED-NEXT: $sgpr7 = IMPLICIT_DEF
188    ; SCHED-NEXT: $vgpr2 = V_MOV_B32_e32 killed $sgpr0, implicit $exec
189    ; SCHED-NEXT: $vgpr3 = V_MOV_B32_e32 killed $sgpr7, implicit $exec
190    ; PAIR-LABEL: name: vopd_mov_mov
191    ; PAIR: $sgpr0 = IMPLICIT_DEF
192    ; PAIR-NEXT: $sgpr7 = IMPLICIT_DEF
193    ; PAIR-NEXT: $vgpr2, $vgpr3 = V_DUAL_MOV_B32_e32_X_MOV_B32_e32 killed $sgpr0, killed $sgpr7, implicit $exec, implicit $exec, implicit $exec
194    $sgpr0 = IMPLICIT_DEF
195    $sgpr7 = IMPLICIT_DEF
196    $vgpr2 = V_MOV_B32_e32 $sgpr0, implicit $exec
197    $vgpr3 = V_MOV_B32_e32 $sgpr7, implicit $exec
198
199...
200
201
202---
203name:            vopd_constants_fail
204tracksRegLiveness: true
205body:             |
206  bb.0:
207
208    ; SCHED-LABEL: name: vopd_constants_fail
209    ; SCHED: $vgpr2 = IMPLICIT_DEF
210    ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF
211    ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
212    ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF
213    ; SCHED-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 100, killed $vgpr3, implicit $mode, implicit $exec
214    ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 99, killed $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
215    ; PAIR-LABEL: name: vopd_constants_fail
216    ; PAIR: $vgpr2 = IMPLICIT_DEF
217    ; PAIR-NEXT: $vgpr0 = IMPLICIT_DEF
218    ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF
219    ; PAIR-NEXT: $vgpr3 = IMPLICIT_DEF
220    ; PAIR-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 100, killed $vgpr3, implicit $mode, implicit $exec
221    ; PAIR-NEXT: $vgpr2 = V_FMAC_F32_e32 99, killed $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
222    $vgpr0 = IMPLICIT_DEF
223    $vgpr1 = IMPLICIT_DEF
224    $vgpr2 = IMPLICIT_DEF
225    $vgpr3 = IMPLICIT_DEF
226    ; should not pair with two different literals
227    $vgpr2 = V_FMAC_F32_e32 99, $vgpr1, $vgpr2, implicit $mode, implicit $exec
228    $vgpr5 = V_FMAMK_F32 $vgpr0, 100, $vgpr3, implicit $mode, implicit $exec
229
230...
231
232---
233name:            vopd_constants_inlinable
234tracksRegLiveness: true
235body:             |
236  bb.0:
237    ; SCHED-LABEL: name: vopd_constants_inlinable
238    ; SCHED: $vgpr2 = IMPLICIT_DEF
239    ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF
240    ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
241    ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF
242    ; SCHED-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 100, killed $vgpr3, implicit $mode, implicit $exec
243    ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 4, killed $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
244    ; PAIR-LABEL: name: vopd_constants_inlinable
245    ; PAIR: $vgpr2 = IMPLICIT_DEF
246    ; PAIR-NEXT: $vgpr0 = IMPLICIT_DEF
247    ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF
248    ; PAIR-NEXT: $vgpr3 = IMPLICIT_DEF
249    ; PAIR-NEXT: $vgpr5, $vgpr2 = V_DUAL_FMAMK_F32_X_FMAC_F32_e32 killed $vgpr0, 100, killed $vgpr3, 4, killed $vgpr1, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $mode, implicit $exec
250    $vgpr0 = IMPLICIT_DEF
251    $vgpr1 = IMPLICIT_DEF
252    $vgpr2 = IMPLICIT_DEF
253    $vgpr3 = IMPLICIT_DEF
254    ; can pair since 4 is inlinable
255    $vgpr2 = V_FMAC_F32_e32 4, $vgpr1, $vgpr2, implicit $mode, implicit $exec
256    $vgpr5 = V_FMAMK_F32 $vgpr0, 100, $vgpr3, implicit $mode, implicit $exec
257
258...
259
260
261---
262name:            vopd_constants_same
263tracksRegLiveness: true
264body:             |
265  bb.0:
266
267    ; SCHED-LABEL: name: vopd_constants_same
268    ; SCHED: $vgpr2 = IMPLICIT_DEF
269    ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF
270    ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
271    ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF
272    ; SCHED-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 100, killed $vgpr3, implicit $mode, implicit $exec
273    ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 100, killed $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
274    ; PAIR-LABEL: name: vopd_constants_same
275    ; PAIR: $vgpr2 = IMPLICIT_DEF
276    ; PAIR-NEXT: $vgpr0 = IMPLICIT_DEF
277    ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF
278    ; PAIR-NEXT: $vgpr3 = IMPLICIT_DEF
279    ; PAIR-NEXT: $vgpr5, $vgpr2 = V_DUAL_FMAMK_F32_X_FMAC_F32_e32 killed $vgpr0, 100, killed $vgpr3, 100, killed $vgpr1, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $mode, implicit $exec
280    $vgpr0 = IMPLICIT_DEF
281    $vgpr1 = IMPLICIT_DEF
282    $vgpr2 = IMPLICIT_DEF
283    $vgpr3 = IMPLICIT_DEF
284    ; should be able to pair using 1 deduplicated literal
285    $vgpr2 = V_FMAC_F32_e32 100, $vgpr1, $vgpr2, implicit $mode, implicit $exec
286    $vgpr5 = V_FMAMK_F32 $vgpr0, 100, $vgpr3, implicit $mode, implicit $exec
287
288...
289
290---
291name:            vopd_mov_fmaak_constants_same
292tracksRegLiveness: true
293body:             |
294  bb.0:
295
296    ; SCHED-LABEL: name: vopd_mov_fmaak_constants_same
297    ; SCHED: $vgpr0 = IMPLICIT_DEF
298    ; SCHED-NEXT: $sgpr0 = IMPLICIT_DEF
299    ; SCHED-NEXT: $vgpr1 = V_MOV_B32_e32 981467136, implicit $exec
300    ; SCHED-NEXT: $vgpr2 = V_FMAAK_F32 killed $sgpr0, killed $vgpr0, 981467136, implicit $mode, implicit $exec
301    ; PAIR-LABEL: name: vopd_mov_fmaak_constants_same
302    ; PAIR: $vgpr0 = IMPLICIT_DEF
303    ; PAIR-NEXT: $sgpr0 = IMPLICIT_DEF
304    ; 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
305    $vgpr0 = IMPLICIT_DEF
306    $sgpr0 = IMPLICIT_DEF
307    ; should be able to pair using 1 deduplicated literal
308    $vgpr1 = V_MOV_B32_e32 981467136, implicit $exec
309    $vgpr2 = V_FMAAK_F32 $sgpr0, $vgpr0, 981467136, implicit $mode, implicit $exec
310
311...
312
313---
314name:            vopd_debug
315tracksRegLiveness: true
316body:             |
317  bb.0:
318
319    ; SCHED-LABEL: name: vopd_debug
320    ; SCHED: $vgpr0 = IMPLICIT_DEF
321    ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
322    ; SCHED-NEXT: $vgpr3 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec
323    ; SCHED-NEXT: DBG_VALUE $vgpr0, 0, 0
324    ; SCHED-NEXT: $vgpr6 = V_MUL_F32_e32 killed $vgpr0, $vgpr0, implicit $mode, implicit $exec
325    ; PAIR-LABEL: name: vopd_debug
326    ; PAIR: $vgpr0 = IMPLICIT_DEF
327    ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF
328    ; PAIR-NEXT: $vgpr3, $vgpr6 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32 killed $vgpr1, $vgpr1, killed $vgpr0, $vgpr0, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $mode, implicit $exec
329    ; PAIR-NEXT: DBG_VALUE $vgpr0, 0, 0
330    $vgpr0 = IMPLICIT_DEF
331    $vgpr1 = IMPLICIT_DEF
332    ; TODO Debug values disable VOPD creation
333    $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
334    DBG_VALUE $vgpr0, 0, 0
335    $vgpr6 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
336
337...
338
339---
340name:            vopd_schedule_unconstrained
341tracksRegLiveness: true
342body:             |
343  bb.0:
344
345    ; SCHED-LABEL: name: vopd_schedule_unconstrained
346    ; SCHED: $vgpr2 = IMPLICIT_DEF
347    ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF
348    ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF
349    ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
350    ; SCHED-NEXT: $vgpr4 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
351    ; SCHED-NEXT: $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
352    ; SCHED-NEXT: $vgpr6 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
353    ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 10, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
354    ; SCHED-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
355    ; SCHED-NEXT: $vgpr12 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
356    ; SCHED-NEXT: $vgpr19 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
357    ; SCHED-NEXT: $vgpr11 = V_CNDMASK_B32_e32 $vgpr0, killed $vgpr3, implicit $mode, implicit $exec, implicit $vcc
358    ; SCHED-NEXT: $vgpr17 = V_MUL_F32_e32 killed $vgpr0, $vgpr0, implicit $mode, implicit $exec
359    ; SCHED-NEXT: $vgpr10 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
360    ; SCHED-NEXT: $vgpr15 = V_CNDMASK_B32_e32 $vgpr1, killed $vgpr2, implicit $mode, implicit $exec, implicit $vcc
361    ; SCHED-NEXT: $vgpr16 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
362    ; SCHED-NEXT: $vgpr14 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec
363    ; PAIR-LABEL: name: vopd_schedule_unconstrained
364    ; PAIR: $vgpr2 = IMPLICIT_DEF
365    ; PAIR-NEXT: $vgpr3 = IMPLICIT_DEF
366    ; PAIR-NEXT: $vgpr0 = IMPLICIT_DEF
367    ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF
368    ; PAIR-NEXT: $vgpr4 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
369    ; PAIR-NEXT: $vgpr3, $vgpr6 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32 $vgpr1, $vgpr1, $vgpr0, $vgpr0, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $mode, implicit $exec
370    ; PAIR-NEXT: $vgpr2 = V_FMAC_F32_e32 10, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
371    ; PAIR-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
372    ; PAIR-NEXT: $vgpr12, $vgpr19 = V_DUAL_ADD_F32_e32_X_CNDMASK_B32_e32 $vgpr1, $vgpr1, $vgpr0, $vgpr3, implicit $exec, implicit $vcc, implicit $mode, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $vcc
373    ; PAIR-NEXT: $vgpr11 = V_CNDMASK_B32_e32 $vgpr0, killed $vgpr3, implicit $mode, implicit $exec, implicit $vcc
374    ; PAIR-NEXT: $vgpr17, $vgpr10 = V_DUAL_MUL_F32_e32_X_CNDMASK_B32_e32 killed $vgpr0, $vgpr0, $vgpr1, $vgpr2, implicit $exec, implicit $vcc, implicit $mode, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $vcc
375    ; PAIR-NEXT: $vgpr15 = V_CNDMASK_B32_e32 $vgpr1, killed $vgpr2, implicit $mode, implicit $exec, implicit $vcc
376    ; PAIR-NEXT: $vgpr16 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
377    ; PAIR-NEXT: $vgpr14 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec
378    $vgpr0 = IMPLICIT_DEF
379    $vgpr1 = IMPLICIT_DEF
380    $vgpr2 = IMPLICIT_DEF
381    $vgpr3 = IMPLICIT_DEF
382    $vgpr2 = V_FMAC_F32_e32 10, $vgpr1, $vgpr2, implicit $mode, implicit $exec
383    $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
384    $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
385    $vgpr10 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
386    $vgpr4 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
387    $vgpr6 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
388    ; $vgpr9 = V_FMAMK_F32 $vgpr0, 10, $vgpr2, implicit $mode, implicit $exec
389    $vgpr11 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
390    $vgpr19 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
391    $vgpr12 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
392    $vgpr17 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
393    ; $vgpr18 = V_FMAMK_F32 $vgpr0, 10, $vgpr3, implicit $mode, implicit $exec
394    ; $vgpr11 = V_FMAC_F32_e32 10, $vgpr1, $vgpr11, implicit $mode, implicit $exec
395    $vgpr15 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
396    $vgpr16 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
397    $vgpr14 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
398
399...
400
401---
402name:            vopd_schedule_unconstrained_2
403tracksRegLiveness: true
404body:             |
405  bb.0:
406
407    ; SCHED-LABEL: name: vopd_schedule_unconstrained_2
408    ; SCHED: $vgpr2 = IMPLICIT_DEF
409    ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF
410    ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF
411    ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
412    ; SCHED-NEXT: $vgpr20 = IMPLICIT_DEF
413    ; SCHED-NEXT: $vgpr16 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
414    ; SCHED-NEXT: $vgpr35 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
415    ; SCHED-NEXT: $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
416    ; SCHED-NEXT: $vgpr6 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
417    ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 10, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
418    ; SCHED-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
419    ; SCHED-NEXT: $vgpr4 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
420    ; SCHED-NEXT: $vgpr29 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
421    ; SCHED-NEXT: $vgpr19 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
422    ; SCHED-NEXT: $vgpr20 = V_FMAC_F32_e32 10, $vgpr1, killed $vgpr20, implicit $mode, implicit $exec
423    ; SCHED-NEXT: $vgpr15 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
424    ; SCHED-NEXT: $vgpr10 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
425    ; SCHED-NEXT: $vgpr17 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
426    ; SCHED-NEXT: $vgpr11 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
427    ; SCHED-NEXT: $vgpr12 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
428    ; SCHED-NEXT: $vgpr37 = V_CNDMASK_B32_e32 $vgpr0, killed $vgpr3, implicit $mode, implicit $exec, implicit $vcc
429    ; SCHED-NEXT: $vgpr14 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
430    ; SCHED-NEXT: $vgpr20 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
431    ; SCHED-NEXT: $vgpr21 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
432    ; SCHED-NEXT: $vgpr24 = V_MUL_F32_e32 killed $vgpr0, $vgpr0, implicit $mode, implicit $exec
433    ; SCHED-NEXT: $vgpr28 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
434    ; SCHED-NEXT: $vgpr22 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
435    ; SCHED-NEXT: $vgpr31 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
436    ; SCHED-NEXT: $vgpr33 = V_CNDMASK_B32_e32 $vgpr1, killed $vgpr2, implicit $mode, implicit $exec, implicit $vcc
437    ; SCHED-NEXT: $vgpr34 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
438    ; SCHED-NEXT: $vgpr32 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec
439    ; PAIR-LABEL: name: vopd_schedule_unconstrained_2
440    ; PAIR: $vgpr2 = IMPLICIT_DEF
441    ; PAIR-NEXT: $vgpr3 = IMPLICIT_DEF
442    ; PAIR-NEXT: $vgpr0 = IMPLICIT_DEF
443    ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF
444    ; PAIR-NEXT: $vgpr20 = IMPLICIT_DEF
445    ; PAIR-NEXT: $vgpr16, $vgpr35 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32 $vgpr1, $vgpr1, $vgpr0, $vgpr0, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $mode, implicit $exec
446    ; PAIR-NEXT: $vgpr3, $vgpr6 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32 $vgpr1, $vgpr1, $vgpr0, $vgpr0, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $mode, implicit $exec
447    ; PAIR-NEXT: $vgpr2 = V_FMAC_F32_e32 10, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec
448    ; PAIR-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
449    ; PAIR-NEXT: $vgpr4, $vgpr29 = V_DUAL_SUB_F32_e32_X_CNDMASK_B32_e32 $vgpr1, $vgpr1, $vgpr0, $vgpr3, implicit $exec, implicit $vcc, implicit $mode, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $vcc
450    ; PAIR-NEXT: $vgpr19, $vgpr20 = V_DUAL_CNDMASK_B32_e32_X_FMAC_F32_e32 $vgpr0, $vgpr3, 10, $vgpr1, implicit $exec, implicit $mode, implicit $vcc, implicit $mode, implicit $exec, implicit $vcc, implicit $mode, implicit $exec
451    ; PAIR-NEXT: $vgpr15 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
452    ; PAIR-NEXT: $vgpr10, $vgpr17 = V_DUAL_CNDMASK_B32_e32_X_MUL_F32_e32 $vgpr1, $vgpr2, $vgpr0, $vgpr0, implicit $exec, implicit $mode, implicit $vcc, implicit $mode, implicit $exec, implicit $vcc, implicit $mode, implicit $exec
453    ; PAIR-NEXT: $vgpr11, $vgpr12 = V_DUAL_CNDMASK_B32_e32_X_ADD_F32_e32 $vgpr0, $vgpr3, $vgpr1, $vgpr1, implicit $exec, implicit $mode, implicit $vcc, implicit $mode, implicit $exec, implicit $vcc, implicit $mode, implicit $exec
454    ; PAIR-NEXT: $vgpr37, $vgpr14 = V_DUAL_CNDMASK_B32_e32_X_SUB_F32_e32 $vgpr0, killed $vgpr3, $vgpr1, $vgpr1, implicit $exec, implicit $mode, implicit $vcc, implicit $mode, implicit $exec, implicit $vcc, implicit $mode, implicit $exec
455    ; PAIR-NEXT: $vgpr20 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
456    ; PAIR-NEXT: $vgpr21, $vgpr24 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32 $vgpr1, $vgpr1, killed $vgpr0, $vgpr0, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $mode, implicit $exec
457    ; PAIR-NEXT: $vgpr28 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
458    ; PAIR-NEXT: $vgpr22 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
459    ; PAIR-NEXT: $vgpr31 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
460    ; PAIR-NEXT: $vgpr33 = V_CNDMASK_B32_e32 $vgpr1, killed $vgpr2, implicit $mode, implicit $exec, implicit $vcc
461    ; PAIR-NEXT: $vgpr34 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
462    ; PAIR-NEXT: $vgpr32 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec
463    $vgpr0 = IMPLICIT_DEF
464    $vgpr1 = IMPLICIT_DEF
465    $vgpr2 = IMPLICIT_DEF
466    $vgpr3 = IMPLICIT_DEF
467    $vgpr2 = V_FMAC_F32_e32 10, $vgpr1, $vgpr2, implicit $mode, implicit $exec
468    $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
469    $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
470    $vgpr10 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
471    $vgpr4 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
472    $vgpr6 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
473    ; $vgpr9 = V_FMAMK_F32 $vgpr0, 10, $vgpr2, implicit $mode, implicit $exec
474    $vgpr11 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
475    $vgpr19 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
476    $vgpr12 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
477    $vgpr17 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
478    ; $vgpr18 = V_FMAMK_F32 $vgpr0, 10, $vgpr3, implicit $mode, implicit $exec
479    ; $vgpr11 = V_FMAC_F32_e32 10, $vgpr1, $vgpr11, implicit $mode, implicit $exec
480    $vgpr15 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
481    $vgpr16 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
482    $vgpr14 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
483    $vgpr20 = IMPLICIT_DEF
484    $vgpr20 = V_FMAC_F32_e32 10, $vgpr1, $vgpr20, implicit $mode, implicit $exec
485    $vgpr20 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
486    $vgpr21 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
487    $vgpr28 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
488    $vgpr22 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
489    $vgpr24 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
490    ; $vgpr9 = V_FMAMK_F32 $vgpr0, 10, $vgpr2, implicit $mode, implicit $exec
491    $vgpr29 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
492    $vgpr37 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc
493    $vgpr31 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
494    $vgpr35 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec
495    ; $vgpr18 = V_FMAMK_F32 $vgpr0, 10, $vgpr3, implicit $mode, implicit $exec
496    ; $vgpr11 = V_FMAC_F32_e32 10, $vgpr1, $vgpr11, implicit $mode, implicit $exec
497    $vgpr33 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc
498    $vgpr34 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
499    $vgpr32 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec
500
501...
502
503---
504name: vopd_mov_fixup
505tracksRegLiveness: true
506body: |
507  bb.0:
508    ; SCHED-LABEL: name: vopd_mov_fixup
509    ; SCHED: $vgpr0 = IMPLICIT_DEF
510    ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF
511    ; SCHED-NEXT: $vgpr2 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec
512    ; SCHED-NEXT: $vgpr3 = V_ADD_F32_e32 killed $vgpr0, killed $vgpr1, implicit $mode, implicit $exec
513    ; SCHED-NEXT: $vgpr4 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec
514    ; SCHED-NEXT: $vgpr5 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec
515    ; PAIR-LABEL: name: vopd_mov_fixup
516    ; PAIR: $vgpr0 = IMPLICIT_DEF
517    ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF
518    ; 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
519    ; 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
520    $vgpr0 = IMPLICIT_DEF
521    $vgpr1 = IMPLICIT_DEF
522    ; should pair
523    $vgpr2 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec
524    $vgpr3 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
525    ; should pair
526    $vgpr4 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec
527    $vgpr5 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec
528...
529
530---
531name: vopd_mov_fixup_fail
532tracksRegLiveness: true
533body: |
534  bb.0:
535    ; SCHED-LABEL: name: vopd_mov_fixup_fail
536    ; SCHED: $vgpr0 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec
537    ; SCHED-NEXT: $vgpr1 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds + 4, implicit $exec
538    ; PAIR-LABEL: name: vopd_mov_fixup_fail
539    ; PAIR: $vgpr0 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec
540    ; PAIR-NEXT: $vgpr1 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds + 4, implicit $exec
541    $vgpr0 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec
542    $vgpr1 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds + 4, implicit $exec
543...
544