1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2# RUN: llc -march=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -verify-machineinstrs -run-pass post-RA-hazard-rec -o - %s | FileCheck -check-prefix=GCN %s
3
4---
5name:            partial_forwarding_1_hazard
6body:            |
7  bb.0:
8    ; GCN-LABEL: name: partial_forwarding_1_hazard
9    ; GCN: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
10    ; GCN: $exec = S_MOV_B64 -1
11    ; GCN: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
12    ; GCN: S_WAITCNT_DEPCTR 4095
13    ; GCN: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
14    ; GCN: S_ENDPGM 0
15    $vgpr0 = V_MOV_B32_e32 0, implicit $exec
16    $exec = S_MOV_B64 -1
17    $vgpr1 = V_MOV_B32_e32 0, implicit $exec
18    $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
19    S_ENDPGM 0
20...
21
22---
23name:            partial_forwarding_2_hazard
24body:            |
25  bb.0:
26    ; GCN-LABEL: name: partial_forwarding_2_hazard
27    ; GCN: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
28    ; GCN: $sgpr0 = S_MOV_B32 0
29    ; GCN: $sgpr1 = S_MOV_B32 0
30    ; GCN: $sgpr2 = S_MOV_B32 0
31    ; GCN: $exec = S_MOV_B64 -1
32    ; GCN: $sgpr3 = S_MOV_B32 0
33    ; GCN: $sgpr4 = S_MOV_B32 0
34    ; GCN: $sgpr5 = S_MOV_B32 0
35    ; GCN: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
36    ; GCN: $sgpr6 = S_MOV_B32 0
37    ; GCN: $sgpr7 = S_MOV_B32 0
38    ; GCN: $sgpr8 = S_MOV_B32 0
39    ; GCN: $sgpr9 = S_MOV_B32 0
40    ; GCN: $sgpr10 = S_MOV_B32 0
41    ; GCN: S_WAITCNT_DEPCTR 4095
42    ; GCN: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
43    ; GCN: S_ENDPGM 0
44    $vgpr0 = V_MOV_B32_e32 0, implicit $exec
45    $sgpr0 = S_MOV_B32 0
46    $sgpr1 = S_MOV_B32 0
47    $sgpr2 = S_MOV_B32 0
48    $exec = S_MOV_B64 -1
49    $sgpr3 = S_MOV_B32 0
50    $sgpr4 = S_MOV_B32 0
51    $sgpr5 = S_MOV_B32 0
52    $vgpr1 = V_MOV_B32_e32 0, implicit $exec
53    $sgpr6 = S_MOV_B32 0
54    $sgpr7 = S_MOV_B32 0
55    $sgpr8 = S_MOV_B32 0
56    $sgpr9 = S_MOV_B32 0
57    $sgpr10 = S_MOV_B32 0
58    $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
59    S_ENDPGM 0
60...
61
62---
63name:            partial_forwarding_3_hazard
64body:            |
65  bb.0:
66    ; GCN-LABEL: name: partial_forwarding_3_hazard
67    ; GCN: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
68    ; GCN: $vgpr10 = V_MOV_B32_e32 0, implicit $exec
69    ; GCN: $exec = S_MOV_B64 -1
70    ; GCN: $vgpr11 = V_MOV_B32_e32 0, implicit $exec
71    ; GCN: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
72    ; GCN: $vgpr12 = V_MOV_B32_e32 0, implicit $exec
73    ; GCN: $vgpr13 = V_MOV_B32_e32 0, implicit $exec
74    ; GCN: $vgpr14 = V_MOV_B32_e32 0, implicit $exec
75    ; GCN: $vgpr15 = V_MOV_B32_e32 0, implicit $exec
76    ; GCN: S_WAITCNT_DEPCTR 4095
77    ; GCN: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
78    ; GCN: S_ENDPGM 0
79    $vgpr0 = V_MOV_B32_e32 0, implicit $exec
80    $vgpr10 = V_MOV_B32_e32 0, implicit $exec
81    $exec = S_MOV_B64 -1
82    $vgpr11 = V_MOV_B32_e32 0, implicit $exec
83    $vgpr1 = V_MOV_B32_e32 0, implicit $exec
84    $vgpr12 = V_MOV_B32_e32 0, implicit $exec
85    $vgpr13 = V_MOV_B32_e32 0, implicit $exec
86    $vgpr14 = V_MOV_B32_e32 0, implicit $exec
87    $vgpr15 = V_MOV_B32_e32 0, implicit $exec
88    $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
89    S_ENDPGM 0
90...
91
92---
93name:            partial_forwarding_3_no_hazard_1
94body:            |
95  bb.0:
96    ; GCN-LABEL: name: partial_forwarding_3_no_hazard_1
97    ; GCN: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
98    ; GCN: $vgpr10 = V_MOV_B32_e32 0, implicit $exec
99    ; GCN: $vgpr20 = V_MOV_B32_e32 0, implicit $exec
100    ; GCN: $exec = S_MOV_B64 -1
101    ; GCN: $vgpr11 = V_MOV_B32_e32 0, implicit $exec
102    ; GCN: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
103    ; GCN: $vgpr12 = V_MOV_B32_e32 0, implicit $exec
104    ; GCN: $vgpr13 = V_MOV_B32_e32 0, implicit $exec
105    ; GCN: $vgpr14 = V_MOV_B32_e32 0, implicit $exec
106    ; GCN: $vgpr15 = V_MOV_B32_e32 0, implicit $exec
107    ; GCN: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
108    ; GCN: S_ENDPGM 0
109    $vgpr0 = V_MOV_B32_e32 0, implicit $exec
110    $vgpr10 = V_MOV_B32_e32 0, implicit $exec
111    $vgpr20 = V_MOV_B32_e32 0, implicit $exec
112    $exec = S_MOV_B64 -1
113    $vgpr11 = V_MOV_B32_e32 0, implicit $exec
114    $vgpr1 = V_MOV_B32_e32 0, implicit $exec
115    $vgpr12 = V_MOV_B32_e32 0, implicit $exec
116    $vgpr13 = V_MOV_B32_e32 0, implicit $exec
117    $vgpr14 = V_MOV_B32_e32 0, implicit $exec
118    $vgpr15 = V_MOV_B32_e32 0, implicit $exec
119    $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
120    S_ENDPGM 0
121...
122
123---
124name:            partial_forwarding_3_no_hazard_2
125body:            |
126  bb.0:
127    ; GCN-LABEL: name: partial_forwarding_3_no_hazard_2
128    ; GCN: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
129    ; GCN: $vgpr10 = V_MOV_B32_e32 0, implicit $exec
130    ; GCN: $exec = S_MOV_B64 -1
131    ; GCN: $vgpr11 = V_MOV_B32_e32 0, implicit $exec
132    ; GCN: $vgpr20 = V_MOV_B32_e32 0, implicit $exec
133    ; GCN: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
134    ; GCN: $vgpr12 = V_MOV_B32_e32 0, implicit $exec
135    ; GCN: $vgpr13 = V_MOV_B32_e32 0, implicit $exec
136    ; GCN: $vgpr14 = V_MOV_B32_e32 0, implicit $exec
137    ; GCN: $vgpr15 = V_MOV_B32_e32 0, implicit $exec
138    ; GCN: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
139    ; GCN: S_ENDPGM 0
140    $vgpr0 = V_MOV_B32_e32 0, implicit $exec
141    $vgpr10 = V_MOV_B32_e32 0, implicit $exec
142    $exec = S_MOV_B64 -1
143    $vgpr11 = V_MOV_B32_e32 0, implicit $exec
144    $vgpr20 = V_MOV_B32_e32 0, implicit $exec
145    $vgpr1 = V_MOV_B32_e32 0, implicit $exec
146    $vgpr12 = V_MOV_B32_e32 0, implicit $exec
147    $vgpr13 = V_MOV_B32_e32 0, implicit $exec
148    $vgpr14 = V_MOV_B32_e32 0, implicit $exec
149    $vgpr15 = V_MOV_B32_e32 0, implicit $exec
150    $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
151    S_ENDPGM 0
152...
153
154---
155name:            partial_forwarding_3_no_hazard_3
156body:            |
157  bb.0:
158    ; GCN-LABEL: name: partial_forwarding_3_no_hazard_3
159    ; GCN: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
160    ; GCN: $vgpr10 = V_MOV_B32_e32 0, implicit $exec
161    ; GCN: $exec = S_MOV_B64 -1
162    ; GCN: $vgpr11 = V_MOV_B32_e32 0, implicit $exec
163    ; GCN: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
164    ; GCN: $vgpr12 = V_MOV_B32_e32 0, implicit $exec
165    ; GCN: $vgpr13 = V_MOV_B32_e32 0, implicit $exec
166    ; GCN: $vgpr14 = V_MOV_B32_e32 0, implicit $exec
167    ; GCN: $vgpr15 = V_MOV_B32_e32 0, implicit $exec
168    ; GCN: $vgpr20 = V_MOV_B32_e32 0, implicit $exec
169    ; GCN: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
170    ; GCN: S_ENDPGM 0
171    $vgpr0 = V_MOV_B32_e32 0, implicit $exec
172    $vgpr10 = V_MOV_B32_e32 0, implicit $exec
173    $exec = S_MOV_B64 -1
174    $vgpr11 = V_MOV_B32_e32 0, implicit $exec
175    $vgpr1 = V_MOV_B32_e32 0, implicit $exec
176    $vgpr12 = V_MOV_B32_e32 0, implicit $exec
177    $vgpr13 = V_MOV_B32_e32 0, implicit $exec
178    $vgpr14 = V_MOV_B32_e32 0, implicit $exec
179    $vgpr15 = V_MOV_B32_e32 0, implicit $exec
180    $vgpr20 = V_MOV_B32_e32 0, implicit $exec
181    $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
182    S_ENDPGM 0
183...
184
185---
186name:            partial_forwarding_4_hazard
187body:            |
188  bb.0:
189    ; GCN-LABEL: name: partial_forwarding_4_hazard
190    ; GCN: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
191    ; GCN: $exec = S_MOV_B64 -1
192    ; GCN: $vgpr10 = V_MOV_B32_e32 0, implicit $exec
193    ; GCN: $vgpr11 = V_MOV_B32_e32 0, implicit $exec
194    ; GCN: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
195    ; GCN: $vgpr12 = V_MOV_B32_e32 0, implicit $exec
196    ; GCN: $vgpr13 = V_MOV_B32_e32 0, implicit $exec
197    ; GCN: $vgpr14 = V_MOV_B32_e32 0, implicit $exec
198    ; GCN: $vgpr15 = V_MOV_B32_e32 0, implicit $exec
199    ; GCN: S_WAITCNT_DEPCTR 4095
200    ; GCN: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
201    ; GCN: S_ENDPGM 0
202    $vgpr0 = V_MOV_B32_e32 0, implicit $exec
203    $exec = S_MOV_B64 -1
204    $vgpr10 = V_MOV_B32_e32 0, implicit $exec
205    $vgpr11 = V_MOV_B32_e32 0, implicit $exec
206    $vgpr1 = V_MOV_B32_e32 0, implicit $exec
207    $vgpr12 = V_MOV_B32_e32 0, implicit $exec
208    $vgpr13 = V_MOV_B32_e32 0, implicit $exec
209    $vgpr14 = V_MOV_B32_e32 0, implicit $exec
210    $vgpr15 = V_MOV_B32_e32 0, implicit $exec
211    $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
212    S_ENDPGM 0
213...
214
215---
216name:            partial_forwarding_4_no_hazard
217body:            |
218  bb.0:
219    ; GCN-LABEL: name: partial_forwarding_4_no_hazard
220    ; GCN: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
221    ; GCN: $exec = S_MOV_B64 -1
222    ; GCN: $vgpr10 = V_MOV_B32_e32 0, implicit $exec
223    ; GCN: $vgpr11 = V_MOV_B32_e32 0, implicit $exec
224    ; GCN: $vgpr21 = V_MOV_B32_e32 0, implicit $exec
225    ; GCN: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
226    ; GCN: $vgpr12 = V_MOV_B32_e32 0, implicit $exec
227    ; GCN: $vgpr13 = V_MOV_B32_e32 0, implicit $exec
228    ; GCN: $vgpr14 = V_MOV_B32_e32 0, implicit $exec
229    ; GCN: $vgpr15 = V_MOV_B32_e32 0, implicit $exec
230    ; GCN: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
231    ; GCN: S_ENDPGM 0
232    $vgpr0 = V_MOV_B32_e32 0, implicit $exec
233    $exec = S_MOV_B64 -1
234    $vgpr10 = V_MOV_B32_e32 0, implicit $exec
235    $vgpr11 = V_MOV_B32_e32 0, implicit $exec
236    $vgpr21 = V_MOV_B32_e32 0, implicit $exec
237    $vgpr1 = V_MOV_B32_e32 0, implicit $exec
238    $vgpr12 = V_MOV_B32_e32 0, implicit $exec
239    $vgpr13 = V_MOV_B32_e32 0, implicit $exec
240    $vgpr14 = V_MOV_B32_e32 0, implicit $exec
241    $vgpr15 = V_MOV_B32_e32 0, implicit $exec
242    $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
243    S_ENDPGM 0
244...
245
246---
247name:            partial_forwarding_5_hazard
248body:            |
249  bb.0:
250    ; GCN-LABEL: name: partial_forwarding_5_hazard
251    ; GCN: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
252    ; GCN: $vgpr10 = V_MOV_B32_e32 0, implicit $exec
253    ; GCN: $vgpr11 = V_MOV_B32_e32 0, implicit $exec
254    ; GCN: $exec = S_MOV_B64 -1
255    ; GCN: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
256    ; GCN: $vgpr12 = V_MOV_B32_e32 0, implicit $exec
257    ; GCN: $vgpr13 = V_MOV_B32_e32 0, implicit $exec
258    ; GCN: $vgpr14 = V_MOV_B32_e32 0, implicit $exec
259    ; GCN: $vgpr15 = V_MOV_B32_e32 0, implicit $exec
260    ; GCN: S_WAITCNT_DEPCTR 4095
261    ; GCN: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
262    ; GCN: S_ENDPGM 0
263    $vgpr0 = V_MOV_B32_e32 0, implicit $exec
264    $vgpr10 = V_MOV_B32_e32 0, implicit $exec
265    $vgpr11 = V_MOV_B32_e32 0, implicit $exec
266    $exec = S_MOV_B64 -1
267    $vgpr1 = V_MOV_B32_e32 0, implicit $exec
268    $vgpr12 = V_MOV_B32_e32 0, implicit $exec
269    $vgpr13 = V_MOV_B32_e32 0, implicit $exec
270    $vgpr14 = V_MOV_B32_e32 0, implicit $exec
271    $vgpr15 = V_MOV_B32_e32 0, implicit $exec
272    $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
273    S_ENDPGM 0
274...
275
276---
277name:            partial_forwarding_5_no_hazard
278body:            |
279  bb.0:
280    ; GCN-LABEL: name: partial_forwarding_5_no_hazard
281    ; GCN: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
282    ; GCN: $vgpr10 = V_MOV_B32_e32 0, implicit $exec
283    ; GCN: $vgpr11 = V_MOV_B32_e32 0, implicit $exec
284    ; GCN: $vgpr21 = V_MOV_B32_e32 0, implicit $exec
285    ; GCN: $exec = S_MOV_B64 -1
286    ; GCN: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
287    ; GCN: $vgpr12 = V_MOV_B32_e32 0, implicit $exec
288    ; GCN: $vgpr13 = V_MOV_B32_e32 0, implicit $exec
289    ; GCN: $vgpr14 = V_MOV_B32_e32 0, implicit $exec
290    ; GCN: $vgpr15 = V_MOV_B32_e32 0, implicit $exec
291    ; GCN: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
292    ; GCN: S_ENDPGM 0
293    $vgpr0 = V_MOV_B32_e32 0, implicit $exec
294    $vgpr10 = V_MOV_B32_e32 0, implicit $exec
295    $vgpr11 = V_MOV_B32_e32 0, implicit $exec
296    $vgpr21 = V_MOV_B32_e32 0, implicit $exec
297    $exec = S_MOV_B64 -1
298    $vgpr1 = V_MOV_B32_e32 0, implicit $exec
299    $vgpr12 = V_MOV_B32_e32 0, implicit $exec
300    $vgpr13 = V_MOV_B32_e32 0, implicit $exec
301    $vgpr14 = V_MOV_B32_e32 0, implicit $exec
302    $vgpr15 = V_MOV_B32_e32 0, implicit $exec
303    $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
304    S_ENDPGM 0
305...
306
307---
308name:            partial_forwarding_branching_1a
309body:            |
310  ; GCN-LABEL: name: partial_forwarding_branching_1a
311  ; GCN: bb.0:
312  ; GCN:   successors: %bb.2(0x80000000)
313  ; GCN:   $vgpr0 = V_MOV_B32_e32 0, implicit $exec
314  ; GCN:   $exec = S_MOV_B64 -1
315  ; GCN:   S_BRANCH %bb.2
316  ; GCN: bb.1:
317  ; GCN:   successors: %bb.2(0x80000000)
318  ; GCN:   $vgpr0 = V_MOV_B32_e32 0, implicit $exec
319  ; GCN:   $vgpr30 = V_MOV_B32_e32 0, implicit $exec
320  ; GCN:   $vgpr31 = V_MOV_B32_e32 0, implicit $exec
321  ; GCN:   S_BRANCH %bb.2
322  ; GCN: bb.2:
323  ; GCN:   $vgpr10 = V_MOV_B32_e32 0, implicit $exec
324  ; GCN:   $vgpr11 = V_MOV_B32_e32 0, implicit $exec
325  ; GCN:   $vgpr1 = V_MOV_B32_e32 0, implicit $exec
326  ; GCN:   $vgpr12 = V_MOV_B32_e32 0, implicit $exec
327  ; GCN:   $vgpr13 = V_MOV_B32_e32 0, implicit $exec
328  ; GCN:   $vgpr14 = V_MOV_B32_e32 0, implicit $exec
329  ; GCN:   $vgpr15 = V_MOV_B32_e32 0, implicit $exec
330  ; GCN:   S_WAITCNT_DEPCTR 4095
331  ; GCN:   $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
332  ; GCN:   S_ENDPGM 0
333  bb.0:
334    $vgpr0 = V_MOV_B32_e32 0, implicit $exec
335    $exec = S_MOV_B64 -1
336    S_BRANCH %bb.2
337  bb.1:
338    $vgpr0 = V_MOV_B32_e32 0, implicit $exec
339    $vgpr30 = V_MOV_B32_e32 0, implicit $exec
340    $vgpr31 = V_MOV_B32_e32 0, implicit $exec
341    S_BRANCH %bb.2
342  bb.2:
343    $vgpr10 = V_MOV_B32_e32 0, implicit $exec
344    $vgpr11 = V_MOV_B32_e32 0, implicit $exec
345    $vgpr1 = V_MOV_B32_e32 0, implicit $exec
346    $vgpr12 = V_MOV_B32_e32 0, implicit $exec
347    $vgpr13 = V_MOV_B32_e32 0, implicit $exec
348    $vgpr14 = V_MOV_B32_e32 0, implicit $exec
349    $vgpr15 = V_MOV_B32_e32 0, implicit $exec
350    $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
351    S_ENDPGM 0
352...
353
354---
355name:            partial_forwarding_branching_1b
356body:            |
357  ; GCN-LABEL: name: partial_forwarding_branching_1b
358  ; GCN: bb.0:
359  ; GCN:   successors: %bb.2(0x80000000)
360  ; GCN:   $vgpr0 = V_MOV_B32_e32 0, implicit $exec
361  ; GCN:   $vgpr30 = V_MOV_B32_e32 0, implicit $exec
362  ; GCN:   $vgpr31 = V_MOV_B32_e32 0, implicit $exec
363  ; GCN:   S_BRANCH %bb.2
364  ; GCN: bb.1:
365  ; GCN:   successors: %bb.2(0x80000000)
366  ; GCN:   $vgpr0 = V_MOV_B32_e32 0, implicit $exec
367  ; GCN:   $exec = S_MOV_B64 -1
368  ; GCN:   S_BRANCH %bb.2
369  ; GCN: bb.2:
370  ; GCN:   $vgpr10 = V_MOV_B32_e32 0, implicit $exec
371  ; GCN:   $vgpr11 = V_MOV_B32_e32 0, implicit $exec
372  ; GCN:   $vgpr1 = V_MOV_B32_e32 0, implicit $exec
373  ; GCN:   $vgpr12 = V_MOV_B32_e32 0, implicit $exec
374  ; GCN:   $vgpr13 = V_MOV_B32_e32 0, implicit $exec
375  ; GCN:   $vgpr14 = V_MOV_B32_e32 0, implicit $exec
376  ; GCN:   $vgpr15 = V_MOV_B32_e32 0, implicit $exec
377  ; GCN:   S_WAITCNT_DEPCTR 4095
378  ; GCN:   $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
379  ; GCN:   S_ENDPGM 0
380  bb.0:
381    $vgpr0 = V_MOV_B32_e32 0, implicit $exec
382    $vgpr30 = V_MOV_B32_e32 0, implicit $exec
383    $vgpr31 = V_MOV_B32_e32 0, implicit $exec
384    S_BRANCH %bb.2
385  bb.1:
386    $vgpr0 = V_MOV_B32_e32 0, implicit $exec
387    $exec = S_MOV_B64 -1
388    S_BRANCH %bb.2
389  bb.2:
390    $vgpr10 = V_MOV_B32_e32 0, implicit $exec
391    $vgpr11 = V_MOV_B32_e32 0, implicit $exec
392    $vgpr1 = V_MOV_B32_e32 0, implicit $exec
393    $vgpr12 = V_MOV_B32_e32 0, implicit $exec
394    $vgpr13 = V_MOV_B32_e32 0, implicit $exec
395    $vgpr14 = V_MOV_B32_e32 0, implicit $exec
396    $vgpr15 = V_MOV_B32_e32 0, implicit $exec
397    $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
398    S_ENDPGM 0
399...
400