[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / trans-forwarding-hazards.mir
blob13a7d5b4256a62d9154fb0f7af27fc244dda7d83
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -march=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32 -verify-machineinstrs -run-pass post-RA-hazard-rec -o - %s | FileCheck -check-prefixes=GCN,GFX11 %s
3 # RUN: llc -march=amdgcn -mcpu=gfx1150 -mattr=+wavefrontsize32 -verify-machineinstrs -run-pass post-RA-hazard-rec -o - %s | FileCheck -check-prefixes=GCN,GFX1150 %s
5 ---
6 name:            trans_use_1_hazard
7 body:            |
8   bb.0:
9     ; GFX11-LABEL: name: trans_use_1_hazard
10     ; GFX11: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
11     ; GFX11-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec
12     ; GFX11-NEXT: S_WAITCNT_DEPCTR 4095
13     ; GFX11-NEXT: $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
14     ; GFX11-NEXT: S_ENDPGM 0
15     ; GFX1150-LABEL: name: trans_use_1_hazard
16     ; GFX1150: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
17     ; GFX1150-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec
18     ; GFX1150-NEXT: $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
19     ; GFX1150-NEXT: S_ENDPGM 0
20     $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
21     $vgpr2 = V_MOV_B32_e32 0, implicit $exec
22     $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
23     S_ENDPGM 0
24 ...
26 ---
27 name:            trans_use_1_no_hazard_1
28 body:            |
29   bb.0:
30     ; GCN-LABEL: name: trans_use_1_no_hazard_1
31     ; GCN: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
32     ; GCN-NEXT: S_WAITCNT_DEPCTR 4095
33     ; GCN-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec
34     ; GCN-NEXT: $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
35     ; GCN-NEXT: S_ENDPGM 0
36     $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
37     S_WAITCNT_DEPCTR 4095
38     $vgpr2 = V_MOV_B32_e32 0, implicit $exec
39     $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
40     S_ENDPGM 0
41 ...
43 ---
44 name:            trans_use_2_hazard
45 body:            |
46   bb.0:
47     ; GFX11-LABEL: name: trans_use_2_hazard
48     ; GFX11: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
49     ; GFX11-NEXT: $sgpr0 = S_MOV_B32 0
50     ; GFX11-NEXT: $sgpr1 = S_MOV_B32 0
51     ; GFX11-NEXT: $sgpr2 = S_MOV_B32 0
52     ; GFX11-NEXT: $sgpr3 = S_MOV_B32 0
53     ; GFX11-NEXT: $sgpr4 = S_MOV_B32 0
54     ; GFX11-NEXT: $sgpr5 = S_MOV_B32 0
55     ; GFX11-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec
56     ; GFX11-NEXT: $sgpr6 = S_MOV_B32 0
57     ; GFX11-NEXT: $sgpr7 = S_MOV_B32 0
58     ; GFX11-NEXT: $sgpr8 = S_MOV_B32 0
59     ; GFX11-NEXT: $sgpr9 = S_MOV_B32 0
60     ; GFX11-NEXT: $sgpr10 = S_MOV_B32 0
61     ; GFX11-NEXT: S_WAITCNT_DEPCTR 4095
62     ; GFX11-NEXT: $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
63     ; GFX11-NEXT: S_ENDPGM 0
64     ; GFX1150-LABEL: name: trans_use_2_hazard
65     ; GFX1150: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
66     ; GFX1150-NEXT: $sgpr0 = S_MOV_B32 0
67     ; GFX1150-NEXT: $sgpr1 = S_MOV_B32 0
68     ; GFX1150-NEXT: $sgpr2 = S_MOV_B32 0
69     ; GFX1150-NEXT: $sgpr3 = S_MOV_B32 0
70     ; GFX1150-NEXT: $sgpr4 = S_MOV_B32 0
71     ; GFX1150-NEXT: $sgpr5 = S_MOV_B32 0
72     ; GFX1150-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec
73     ; GFX1150-NEXT: $sgpr6 = S_MOV_B32 0
74     ; GFX1150-NEXT: $sgpr7 = S_MOV_B32 0
75     ; GFX1150-NEXT: $sgpr8 = S_MOV_B32 0
76     ; GFX1150-NEXT: $sgpr9 = S_MOV_B32 0
77     ; GFX1150-NEXT: $sgpr10 = S_MOV_B32 0
78     ; GFX1150-NEXT: $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
79     ; GFX1150-NEXT: S_ENDPGM 0
80     $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
81     $sgpr0 = S_MOV_B32 0
82     $sgpr1 = S_MOV_B32 0
83     $sgpr2 = S_MOV_B32 0
84     $sgpr3 = S_MOV_B32 0
85     $sgpr4 = S_MOV_B32 0
86     $sgpr5 = S_MOV_B32 0
87     $vgpr2 = V_MOV_B32_e32 0, implicit $exec
88     $sgpr6 = S_MOV_B32 0
89     $sgpr7 = S_MOV_B32 0
90     $sgpr8 = S_MOV_B32 0
91     $sgpr9 = S_MOV_B32 0
92     $sgpr10 = S_MOV_B32 0
93     $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
94     S_ENDPGM 0
95 ...
97 ---
98 name:            trans_use_3_hazard
99 body:            |
100   bb.0:
101     ; GFX11-LABEL: name: trans_use_3_hazard
102     ; GFX11: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
103     ; GFX11-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec
104     ; GFX11-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec
105     ; GFX11-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec
106     ; GFX11-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec
107     ; GFX11-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec
108     ; GFX11-NEXT: S_WAITCNT_DEPCTR 4095
109     ; GFX11-NEXT: $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
110     ; GFX11-NEXT: S_ENDPGM 0
111     ; GFX1150-LABEL: name: trans_use_3_hazard
112     ; GFX1150: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
113     ; GFX1150-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec
114     ; GFX1150-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec
115     ; GFX1150-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec
116     ; GFX1150-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec
117     ; GFX1150-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec
118     ; GFX1150-NEXT: $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
119     ; GFX1150-NEXT: S_ENDPGM 0
120     $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
121     $vgpr2 = V_MOV_B32_e32 0, implicit $exec
122     $vgpr10 = V_MOV_B32_e32 0, implicit $exec
123     $vgpr11 = V_MOV_B32_e32 0, implicit $exec
124     $vgpr12 = V_MOV_B32_e32 0, implicit $exec
125     $vgpr13 = V_MOV_B32_e32 0, implicit $exec
126     $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
127     S_ENDPGM 0
131 name:            trans_use_3_no_hazard_1
132 body:            |
133   bb.0:
134     ; GCN-LABEL: name: trans_use_3_no_hazard_1
135     ; GCN: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
136     ; GCN-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec
137     ; GCN-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec
138     ; GCN-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec
139     ; GCN-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec
140     ; GCN-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec
141     ; GCN-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec
142     ; GCN-NEXT: $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
143     ; GCN-NEXT: S_ENDPGM 0
144     $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
145     $vgpr2 = V_MOV_B32_e32 0, implicit $exec
146     $vgpr10 = V_MOV_B32_e32 0, implicit $exec
147     $vgpr11 = V_MOV_B32_e32 0, implicit $exec
148     $vgpr12 = V_MOV_B32_e32 0, implicit $exec
149     $vgpr13 = V_MOV_B32_e32 0, implicit $exec
150     $vgpr14 = V_MOV_B32_e32 0, implicit $exec
151     $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
152     S_ENDPGM 0
156 name:            trans_use_3_no_hazard_2
157 body:            |
158   bb.0:
159     ; GCN-LABEL: name: trans_use_3_no_hazard_2
160     ; GCN: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
161     ; GCN-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec
162     ; GCN-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec
163     ; GCN-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec
164     ; GCN-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec
165     ; GCN-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec
166     ; GCN-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec
167     ; GCN-NEXT: $vgpr15 = V_MOV_B32_e32 0, implicit $exec
168     ; GCN-NEXT: $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
169     ; GCN-NEXT: S_ENDPGM 0
170     $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
171     $vgpr10 = V_MOV_B32_e32 0, implicit $exec
172     $vgpr11 = V_MOV_B32_e32 0, implicit $exec
173     $vgpr2 = V_MOV_B32_e32 0, implicit $exec
174     $vgpr12 = V_MOV_B32_e32 0, implicit $exec
175     $vgpr13 = V_MOV_B32_e32 0, implicit $exec
176     $vgpr14 = V_MOV_B32_e32 0, implicit $exec
177     $vgpr15 = V_MOV_B32_e32 0, implicit $exec
178     $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
179     S_ENDPGM 0
183 name:            trans_use_3_no_hazard_3
184 body:            |
185   bb.0:
186     ; GCN-LABEL: name: trans_use_3_no_hazard_3
187     ; GCN: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
188     ; GCN-NEXT: $vgpr10 = V_SQRT_F32_e32 $vgpr11, implicit $mode, implicit $exec
189     ; GCN-NEXT: $vgpr12 = V_SQRT_F32_e32 $vgpr13, implicit $mode, implicit $exec
190     ; GCN-NEXT: $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
191     ; GCN-NEXT: S_ENDPGM 0
192     $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
193     $vgpr10 = V_SQRT_F32_e32 $vgpr11, implicit $mode, implicit $exec
194     $vgpr12 = V_SQRT_F32_e32 $vgpr13, implicit $mode, implicit $exec
195     $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
196     S_ENDPGM 0
200 name:            trans_use_4_one_depctr_1
201 body:            |
202   bb.0:
203     ; GFX11-LABEL: name: trans_use_4_one_depctr_1
204     ; GFX11: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
205     ; GFX11-NEXT: $vgpr3 = V_SQRT_F32_e32 $vgpr2, implicit $mode, implicit $exec
206     ; GFX11-NEXT: S_WAITCNT_DEPCTR 4095
207     ; GFX11-NEXT: $vgpr5 = V_ADD_F32_e32 $vgpr1, $vgpr4, implicit $mode, implicit $exec
208     ; GFX11-NEXT: $vgpr7 = V_ADD_F32_e32 $vgpr3, $vgpr6, implicit $mode, implicit $exec
209     ; GFX11-NEXT: S_ENDPGM 0
210     ; GFX1150-LABEL: name: trans_use_4_one_depctr_1
211     ; GFX1150: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
212     ; GFX1150-NEXT: $vgpr3 = V_SQRT_F32_e32 $vgpr2, implicit $mode, implicit $exec
213     ; GFX1150-NEXT: $vgpr5 = V_ADD_F32_e32 $vgpr1, $vgpr4, implicit $mode, implicit $exec
214     ; GFX1150-NEXT: $vgpr7 = V_ADD_F32_e32 $vgpr3, $vgpr6, implicit $mode, implicit $exec
215     ; GFX1150-NEXT: S_ENDPGM 0
216     $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
217     $vgpr3 = V_SQRT_F32_e32 $vgpr2, implicit $mode, implicit $exec
218     $vgpr5 = V_ADD_F32_e32 $vgpr1, $vgpr4, implicit $mode, implicit $exec
219     $vgpr7 = V_ADD_F32_e32 $vgpr3, $vgpr6, implicit $mode, implicit $exec
220     S_ENDPGM 0
224 name:            trans_use_4_one_depctr_2
225 body:            |
226   bb.0:
227     ; GFX11-LABEL: name: trans_use_4_one_depctr_2
228     ; GFX11: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
229     ; GFX11-NEXT: $vgpr3 = V_SQRT_F32_e32 $vgpr2, implicit $mode, implicit $exec
230     ; GFX11-NEXT: S_WAITCNT_DEPCTR 4095
231     ; GFX11-NEXT: $vgpr5 = V_ADD_F32_e32 $vgpr3, $vgpr4, implicit $mode, implicit $exec
232     ; GFX11-NEXT: $vgpr7 = V_ADD_F32_e32 $vgpr1, $vgpr6, implicit $mode, implicit $exec
233     ; GFX11-NEXT: S_ENDPGM 0
234     ; GFX1150-LABEL: name: trans_use_4_one_depctr_2
235     ; GFX1150: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
236     ; GFX1150-NEXT: $vgpr3 = V_SQRT_F32_e32 $vgpr2, implicit $mode, implicit $exec
237     ; GFX1150-NEXT: $vgpr5 = V_ADD_F32_e32 $vgpr3, $vgpr4, implicit $mode, implicit $exec
238     ; GFX1150-NEXT: $vgpr7 = V_ADD_F32_e32 $vgpr1, $vgpr6, implicit $mode, implicit $exec
239     ; GFX1150-NEXT: S_ENDPGM 0
240     $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
241     $vgpr3 = V_SQRT_F32_e32 $vgpr2, implicit $mode, implicit $exec
242     $vgpr5 = V_ADD_F32_e32 $vgpr3, $vgpr4, implicit $mode, implicit $exec
243     $vgpr7 = V_ADD_F32_e32 $vgpr1, $vgpr6, implicit $mode, implicit $exec
244     S_ENDPGM 0
248 name:            trans_use_4
249 body:            |
250   bb.0:
251     ; GFX11-LABEL: name: trans_use_4
252     ; GFX11: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
253     ; GFX11-NEXT: $vgpr10 = V_SQRT_F32_e32 $vgpr11, implicit $mode, implicit $exec
254     ; GFX11-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec
255     ; GFX11-NEXT: S_WAITCNT_DEPCTR 4095
256     ; GFX11-NEXT: $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
257     ; GFX11-NEXT: S_ENDPGM 0
258     ; GFX1150-LABEL: name: trans_use_4
259     ; GFX1150: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
260     ; GFX1150-NEXT: $vgpr10 = V_SQRT_F32_e32 $vgpr11, implicit $mode, implicit $exec
261     ; GFX1150-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec
262     ; GFX1150-NEXT: $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
263     ; GFX1150-NEXT: S_ENDPGM 0
264     $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
265     $vgpr10 = V_SQRT_F32_e32 $vgpr11, implicit $mode, implicit $exec
266     $vgpr2 = V_MOV_B32_e32 0, implicit $exec
267     $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
268     S_ENDPGM 0
272 name:            trans_use_branching_1a
273 body:            |
274   ; GFX11-LABEL: name: trans_use_branching_1a
275   ; GFX11: bb.0:
276   ; GFX11-NEXT:   successors: %bb.2(0x80000000)
277   ; GFX11-NEXT: {{  $}}
278   ; GFX11-NEXT:   $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
279   ; GFX11-NEXT:   S_BRANCH %bb.2
280   ; GFX11-NEXT: {{  $}}
281   ; GFX11-NEXT: bb.1:
282   ; GFX11-NEXT:   successors: %bb.2(0x80000000)
283   ; GFX11-NEXT: {{  $}}
284   ; GFX11-NEXT:   $vgpr2 = V_MOV_B32_e32 0, implicit $exec
285   ; GFX11-NEXT:   $vgpr30 = V_MOV_B32_e32 0, implicit $exec
286   ; GFX11-NEXT:   $vgpr31 = V_MOV_B32_e32 0, implicit $exec
287   ; GFX11-NEXT:   $vgpr32 = V_MOV_B32_e32 0, implicit $exec
288   ; GFX11-NEXT:   $vgpr33 = V_MOV_B32_e32 0, implicit $exec
289   ; GFX11-NEXT:   S_BRANCH %bb.2
290   ; GFX11-NEXT: {{  $}}
291   ; GFX11-NEXT: bb.2:
292   ; GFX11-NEXT:   $vgpr3 = V_MOV_B32_e32 0, implicit $exec
293   ; GFX11-NEXT:   S_WAITCNT_DEPCTR 4095
294   ; GFX11-NEXT:   $vgpr4 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
295   ; GFX11-NEXT:   S_ENDPGM 0
296   ; GFX1150-LABEL: name: trans_use_branching_1a
297   ; GFX1150: bb.0:
298   ; GFX1150-NEXT:   successors: %bb.2(0x80000000)
299   ; GFX1150-NEXT: {{  $}}
300   ; GFX1150-NEXT:   $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
301   ; GFX1150-NEXT:   S_BRANCH %bb.2
302   ; GFX1150-NEXT: {{  $}}
303   ; GFX1150-NEXT: bb.1:
304   ; GFX1150-NEXT:   successors: %bb.2(0x80000000)
305   ; GFX1150-NEXT: {{  $}}
306   ; GFX1150-NEXT:   $vgpr2 = V_MOV_B32_e32 0, implicit $exec
307   ; GFX1150-NEXT:   $vgpr30 = V_MOV_B32_e32 0, implicit $exec
308   ; GFX1150-NEXT:   $vgpr31 = V_MOV_B32_e32 0, implicit $exec
309   ; GFX1150-NEXT:   $vgpr32 = V_MOV_B32_e32 0, implicit $exec
310   ; GFX1150-NEXT:   $vgpr33 = V_MOV_B32_e32 0, implicit $exec
311   ; GFX1150-NEXT:   S_BRANCH %bb.2
312   ; GFX1150-NEXT: {{  $}}
313   ; GFX1150-NEXT: bb.2:
314   ; GFX1150-NEXT:   $vgpr3 = V_MOV_B32_e32 0, implicit $exec
315   ; GFX1150-NEXT:   $vgpr4 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
316   ; GFX1150-NEXT:   S_ENDPGM 0
317   bb.0:
318     $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
319     S_BRANCH %bb.2
320   bb.1:
321     $vgpr2 = V_MOV_B32_e32 0, implicit $exec
322     $vgpr30 = V_MOV_B32_e32 0, implicit $exec
323     $vgpr31 = V_MOV_B32_e32 0, implicit $exec
324     $vgpr32 = V_MOV_B32_e32 0, implicit $exec
325     $vgpr33 = V_MOV_B32_e32 0, implicit $exec
326     S_BRANCH %bb.2
327   bb.2:
328     $vgpr3 = V_MOV_B32_e32 0, implicit $exec
329     $vgpr4 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
330     S_ENDPGM 0
334 name:            trans_use_branching_1b
335 body:            |
336   ; GFX11-LABEL: name: trans_use_branching_1b
337   ; GFX11: bb.0:
338   ; GFX11-NEXT:   successors: %bb.2(0x80000000)
339   ; GFX11-NEXT: {{  $}}
340   ; GFX11-NEXT:   $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
341   ; GFX11-NEXT:   S_BRANCH %bb.2
342   ; GFX11-NEXT: {{  $}}
343   ; GFX11-NEXT: bb.1:
344   ; GFX11-NEXT:   successors: %bb.2(0x80000000)
345   ; GFX11-NEXT: {{  $}}
346   ; GFX11-NEXT:   $vgpr2 = V_MOV_B32_e32 0, implicit $exec
347   ; GFX11-NEXT:   $vgpr30 = V_MOV_B32_e32 0, implicit $exec
348   ; GFX11-NEXT:   S_WAITCNT_DEPCTR 4095
349   ; GFX11-NEXT:   S_BRANCH %bb.2
350   ; GFX11-NEXT: {{  $}}
351   ; GFX11-NEXT: bb.2:
352   ; GFX11-NEXT:   $vgpr3 = V_MOV_B32_e32 0, implicit $exec
353   ; GFX11-NEXT:   S_WAITCNT_DEPCTR 4095
354   ; GFX11-NEXT:   $vgpr4 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
355   ; GFX11-NEXT:   S_ENDPGM 0
356   ; GFX1150-LABEL: name: trans_use_branching_1b
357   ; GFX1150: bb.0:
358   ; GFX1150-NEXT:   successors: %bb.2(0x80000000)
359   ; GFX1150-NEXT: {{  $}}
360   ; GFX1150-NEXT:   $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
361   ; GFX1150-NEXT:   S_BRANCH %bb.2
362   ; GFX1150-NEXT: {{  $}}
363   ; GFX1150-NEXT: bb.1:
364   ; GFX1150-NEXT:   successors: %bb.2(0x80000000)
365   ; GFX1150-NEXT: {{  $}}
366   ; GFX1150-NEXT:   $vgpr2 = V_MOV_B32_e32 0, implicit $exec
367   ; GFX1150-NEXT:   $vgpr30 = V_MOV_B32_e32 0, implicit $exec
368   ; GFX1150-NEXT:   S_WAITCNT_DEPCTR 4095
369   ; GFX1150-NEXT:   S_BRANCH %bb.2
370   ; GFX1150-NEXT: {{  $}}
371   ; GFX1150-NEXT: bb.2:
372   ; GFX1150-NEXT:   $vgpr3 = V_MOV_B32_e32 0, implicit $exec
373   ; GFX1150-NEXT:   $vgpr4 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
374   ; GFX1150-NEXT:   S_ENDPGM 0
375   bb.0:
376     $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
377     S_BRANCH %bb.2
378   bb.1:
379     $vgpr2 = V_MOV_B32_e32 0, implicit $exec
380     $vgpr30 = V_MOV_B32_e32 0, implicit $exec
381     S_WAITCNT_DEPCTR 4095
382     S_BRANCH %bb.2
383   bb.2:
384     $vgpr3 = V_MOV_B32_e32 0, implicit $exec
385     $vgpr4 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
386     S_ENDPGM 0
390 name:            trans_use_branching_1c_no_hazard_1
391 body:            |
392   ; GCN-LABEL: name: trans_use_branching_1c_no_hazard_1
393   ; GCN: bb.0:
394   ; GCN-NEXT:   successors: %bb.2(0x80000000)
395   ; GCN-NEXT: {{  $}}
396   ; GCN-NEXT:   $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
397   ; GCN-NEXT:   S_WAITCNT_DEPCTR 4095
398   ; GCN-NEXT:   S_BRANCH %bb.2
399   ; GCN-NEXT: {{  $}}
400   ; GCN-NEXT: bb.1:
401   ; GCN-NEXT:   successors: %bb.2(0x80000000)
402   ; GCN-NEXT: {{  $}}
403   ; GCN-NEXT:   $vgpr2 = V_MOV_B32_e32 0, implicit $exec
404   ; GCN-NEXT:   $vgpr30 = V_MOV_B32_e32 0, implicit $exec
405   ; GCN-NEXT:   S_BRANCH %bb.2
406   ; GCN-NEXT: {{  $}}
407   ; GCN-NEXT: bb.2:
408   ; GCN-NEXT:   $vgpr3 = V_MOV_B32_e32 0, implicit $exec
409   ; GCN-NEXT:   $vgpr4 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
410   ; GCN-NEXT:   S_ENDPGM 0
411   bb.0:
412     $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec
413     S_WAITCNT_DEPCTR 4095
414     S_BRANCH %bb.2
415   bb.1:
416     $vgpr2 = V_MOV_B32_e32 0, implicit $exec
417     $vgpr30 = V_MOV_B32_e32 0, implicit $exec
418     S_BRANCH %bb.2
419   bb.2:
420     $vgpr3 = V_MOV_B32_e32 0, implicit $exec
421     $vgpr4 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec
422     S_ENDPGM 0