Lines Matching refs:GFX9

2 …cpu=gfx908 -verify-machineinstrs -run-pass=machine-sink -o - %s | FileCheck -check-prefixes=GFX9 %s
11 ; GFX9-LABEL: name: test_sink_fmac_to_only_use
12 ; GFX9: bb.0:
13 ; GFX9-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
14 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2
15 ; GFX9-NEXT: {{ $}}
16 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
17 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
18 ; GFX9-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
19 ; GFX9-NEXT: [[V_MOV_B32_e32_1:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
20 ; GFX9-NEXT: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 0
21 ; GFX9-NEXT: [[S_MOV_B64_1:%[0-9]+]]:sreg_64 = S_MOV_B64 0
22 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:vreg_64 = COPY [[S_MOV_B64_]]
23 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:vreg_64 = COPY [[S_MOV_B64_1]]
24 …; GFX9-NEXT: [[GLOBAL_LOAD_DWORD:%[0-9]+]]:vgpr_32 = GLOBAL_LOAD_DWORD killed [[COPY2]], 0, 0, i…
25 …; GFX9-NEXT: [[GLOBAL_LOAD_DWORD1:%[0-9]+]]:vgpr_32 = GLOBAL_LOAD_DWORD killed [[COPY3]], 0, 0, …
26 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:vgpr_32(s32) = COPY $vgpr0
27 ; GFX9-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 1
28 …; GFX9-NEXT: [[V_CMP_LT_I32_e64_:%[0-9]+]]:sreg_64 = V_CMP_LT_I32_e64 [[COPY4]](s32), [[S_MOV_B3…
29 …; GFX9-NEXT: [[SI_IF:%[0-9]+]]:sreg_64 = SI_IF [[V_CMP_LT_I32_e64_]], %bb.2, implicit-def dead $…
30 ; GFX9-NEXT: S_BRANCH %bb.1
31 ; GFX9-NEXT: {{ $}}
32 ; GFX9-NEXT: bb.1:
33 ; GFX9-NEXT: successors: %bb.2(0x80000000)
34 ; GFX9-NEXT: {{ $}}
35 …; GFX9-NEXT: %9:vgpr_32 = contract nofpexcept V_FMAC_F32_e64 0, [[GLOBAL_LOAD_DWORD]], 0, [[COPY…
36 …; GFX9-NEXT: %10:vgpr_32 = contract nofpexcept V_FMAC_F32_e64 0, %9, 0, [[COPY]], 0, [[COPY1]], …
37 …; GFX9-NEXT: %12:vgpr_32 = contract nofpexcept V_FMAC_F32_e64 0, [[GLOBAL_LOAD_DWORD1]], 0, [[CO…
38 …; GFX9-NEXT: %13:vgpr_32 = contract nofpexcept V_FMAC_F32_e64 0, %12, 0, [[COPY1]], 0, [[COPY]],…
39 …; GFX9-NEXT: [[V_ADD_F32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_F32_e32 %9, %10, implicit $mode, implici…
40 …; GFX9-NEXT: [[V_ADD_F32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_F32_e32 %12, %13, implicit $mode, impli…
41 ; GFX9-NEXT: {{ $}}
42 ; GFX9-NEXT: bb.2:
43 ; GFX9-NEXT: successors: %bb.3(0x80000000)
44 ; GFX9-NEXT: {{ $}}
45 ; GFX9-NEXT: [[PHI:%[0-9]+]]:vgpr_32 = PHI [[V_MOV_B32_e32_]], %bb.0, [[V_ADD_F32_e32_]], %bb.1
46 …; GFX9-NEXT: [[PHI1:%[0-9]+]]:vgpr_32 = PHI [[V_MOV_B32_e32_1]], %bb.0, [[V_ADD_F32_e32_1]], %bb…
47 …; GFX9-NEXT: SI_END_CF [[SI_IF]], implicit-def dead $exec, implicit-def dead $scc, implicit $exec
48 ; GFX9-NEXT: {{ $}}
49 ; GFX9-NEXT: bb.3:
50 ; GFX9-NEXT: S_ENDPGM 0, implicit [[PHI]], implicit [[PHI1]]
93 ; GFX9-LABEL: name: test_no_sink_into_if_cond_multiple_uses
94 ; GFX9: bb.0:
95 ; GFX9-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
96 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2
97 ; GFX9-NEXT: {{ $}}
98 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
99 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
100 ; GFX9-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
101 ; GFX9-NEXT: [[V_MOV_B32_e32_1:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
102 ; GFX9-NEXT: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 0
103 ; GFX9-NEXT: [[S_MOV_B64_1:%[0-9]+]]:sreg_64 = S_MOV_B64 0
104 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:vreg_64 = COPY [[S_MOV_B64_]]
105 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:vreg_64 = COPY [[S_MOV_B64_1]]
106 …; GFX9-NEXT: [[GLOBAL_LOAD_DWORD:%[0-9]+]]:vgpr_32 = GLOBAL_LOAD_DWORD killed [[COPY2]], 0, 0, i…
107 …; GFX9-NEXT: %9:vgpr_32 = contract nofpexcept V_FMAC_F32_e64 0, [[GLOBAL_LOAD_DWORD]], 0, [[COPY…
108 …; GFX9-NEXT: %10:vgpr_32 = contract nofpexcept V_FMAC_F32_e64 0, %9, 0, [[COPY]], 0, [[COPY1]], …
109 …; GFX9-NEXT: [[GLOBAL_LOAD_DWORD1:%[0-9]+]]:vgpr_32 = GLOBAL_LOAD_DWORD killed [[COPY3]], 0, 0, …
110 …; GFX9-NEXT: %12:vgpr_32 = contract nofpexcept V_FMAC_F32_e64 0, [[GLOBAL_LOAD_DWORD1]], 0, [[CO…
111 …; GFX9-NEXT: %13:vgpr_32 = contract nofpexcept V_FMAC_F32_e64 0, %12, 0, [[COPY1]], 0, [[COPY]],…
112 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:vgpr_32(s32) = COPY $vgpr0
113 ; GFX9-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 1
114 …; GFX9-NEXT: [[V_CMP_LT_I32_e64_:%[0-9]+]]:sreg_64 = V_CMP_LT_I32_e64 [[COPY4]](s32), [[S_MOV_B3…
115 …; GFX9-NEXT: [[SI_IF:%[0-9]+]]:sreg_64 = SI_IF [[V_CMP_LT_I32_e64_]], %bb.2, implicit-def dead $…
116 ; GFX9-NEXT: S_BRANCH %bb.1
117 ; GFX9-NEXT: {{ $}}
118 ; GFX9-NEXT: bb.1:
119 ; GFX9-NEXT: successors: %bb.2(0x80000000)
120 ; GFX9-NEXT: {{ $}}
121 …; GFX9-NEXT: [[V_ADD_F32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_F32_e32 %9, %10, implicit $mode, implici…
122 …; GFX9-NEXT: [[V_ADD_F32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_F32_e32 %12, %13, implicit $mode, impli…
123 ; GFX9-NEXT: {{ $}}
124 ; GFX9-NEXT: bb.2:
125 ; GFX9-NEXT: successors: %bb.3(0x80000000)
126 ; GFX9-NEXT: {{ $}}
127 ; GFX9-NEXT: [[PHI:%[0-9]+]]:vgpr_32 = PHI [[V_MOV_B32_e32_]], %bb.0, [[V_ADD_F32_e32_]], %bb.1
128 …; GFX9-NEXT: [[PHI1:%[0-9]+]]:vgpr_32 = PHI [[V_MOV_B32_e32_1]], %bb.0, [[V_ADD_F32_e32_1]], %bb…
129 …; GFX9-NEXT: SI_END_CF [[SI_IF]], implicit-def dead $exec, implicit-def dead $scc, implicit $exec
130 ; GFX9-NEXT: {{ $}}
131 ; GFX9-NEXT: bb.3:
132 …; GFX9-NEXT: [[V_ADD_F32_e32_2:%[0-9]+]]:vgpr_32 = V_ADD_F32_e32 %13, %10, implicit $mode, impli…
133 ; GFX9-NEXT: S_ENDPGM 0, implicit [[PHI]], implicit [[PHI1]]
177 ; GFX9-LABEL: name: no_sink_fmac_not_constant_mode
178 ; GFX9: bb.0:
179 ; GFX9-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
180 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2
181 ; GFX9-NEXT: {{ $}}
182 ; GFX9-NEXT: $mode = IMPLICIT_DEF
183 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
184 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
185 ; GFX9-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
186 ; GFX9-NEXT: [[V_MOV_B32_e32_1:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
187 ; GFX9-NEXT: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 0
188 ; GFX9-NEXT: [[S_MOV_B64_1:%[0-9]+]]:sreg_64 = S_MOV_B64 0
189 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:vreg_64 = COPY [[S_MOV_B64_]]
190 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:vreg_64 = COPY [[S_MOV_B64_1]]
191 …; GFX9-NEXT: [[GLOBAL_LOAD_DWORD:%[0-9]+]]:vgpr_32 = GLOBAL_LOAD_DWORD killed [[COPY2]], 0, 0, i…
192 …; GFX9-NEXT: %9:vgpr_32 = contract nofpexcept V_FMAC_F32_e64 0, [[GLOBAL_LOAD_DWORD]], 0, [[COPY…
193 …; GFX9-NEXT: %10:vgpr_32 = contract nofpexcept V_FMAC_F32_e64 0, %9, 0, [[COPY]], 0, [[COPY1]], …
194 …; GFX9-NEXT: [[GLOBAL_LOAD_DWORD1:%[0-9]+]]:vgpr_32 = GLOBAL_LOAD_DWORD killed [[COPY3]], 0, 0, …
195 …; GFX9-NEXT: %12:vgpr_32 = contract nofpexcept V_FMAC_F32_e64 0, [[GLOBAL_LOAD_DWORD1]], 0, [[CO…
196 …; GFX9-NEXT: %13:vgpr_32 = contract nofpexcept V_FMAC_F32_e64 0, %12, 0, [[COPY1]], 0, [[COPY]],…
197 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:vgpr_32(s32) = COPY $vgpr0
198 ; GFX9-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 1
199 …; GFX9-NEXT: [[V_CMP_LT_I32_e64_:%[0-9]+]]:sreg_64 = V_CMP_LT_I32_e64 [[COPY4]](s32), [[S_MOV_B3…
200 …; GFX9-NEXT: [[SI_IF:%[0-9]+]]:sreg_64 = SI_IF [[V_CMP_LT_I32_e64_]], %bb.2, implicit-def dead $…
201 ; GFX9-NEXT: S_BRANCH %bb.1
202 ; GFX9-NEXT: {{ $}}
203 ; GFX9-NEXT: bb.1:
204 ; GFX9-NEXT: successors: %bb.2(0x80000000)
205 ; GFX9-NEXT: {{ $}}
206 …; GFX9-NEXT: [[V_ADD_F32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_F32_e32 %9, %10, implicit $mode, implici…
207 …; GFX9-NEXT: [[V_ADD_F32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_F32_e32 %12, %13, implicit $mode, impli…
208 ; GFX9-NEXT: {{ $}}
209 ; GFX9-NEXT: bb.2:
210 ; GFX9-NEXT: successors: %bb.3(0x80000000)
211 ; GFX9-NEXT: {{ $}}
212 ; GFX9-NEXT: [[PHI:%[0-9]+]]:vgpr_32 = PHI [[V_MOV_B32_e32_]], %bb.0, [[V_ADD_F32_e32_]], %bb.1
213 …; GFX9-NEXT: [[PHI1:%[0-9]+]]:vgpr_32 = PHI [[V_MOV_B32_e32_1]], %bb.0, [[V_ADD_F32_e32_1]], %bb…
214 …; GFX9-NEXT: SI_END_CF [[SI_IF]], implicit-def dead $exec, implicit-def dead $scc, implicit $exec
215 ; GFX9-NEXT: {{ $}}
216 ; GFX9-NEXT: bb.3:
217 ; GFX9-NEXT: S_ENDPGM 0, implicit [[PHI]], implicit [[PHI1]]
261 ; GFX9-LABEL: name: test_no_sink_fmac_wwm
262 ; GFX9: bb.0:
263 ; GFX9-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
264 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2
265 ; GFX9-NEXT: {{ $}}
266 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
267 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
268 ; GFX9-NEXT: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 0
269 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:vreg_64 = COPY [[S_MOV_B64_]]
270 …; GFX9-NEXT: [[GLOBAL_LOAD_DWORD:%[0-9]+]]:vgpr_32 = GLOBAL_LOAD_DWORD killed [[COPY2]], 0, 0, i…
271 …; GFX9-NEXT: %5:vgpr_32 = contract nofpexcept V_FMAC_F32_e64 0, [[GLOBAL_LOAD_DWORD]], 0, [[COPY…
272 ; GFX9-NEXT: early-clobber %6:vgpr_32 = STRICT_WWM %5, implicit $exec
273 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:vgpr_32(s32) = COPY $vgpr0
274 ; GFX9-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 1
275 …; GFX9-NEXT: [[V_CMP_LT_I32_e64_:%[0-9]+]]:sreg_64 = V_CMP_LT_I32_e64 [[COPY3]](s32), [[S_MOV_B3…
276 …; GFX9-NEXT: [[SI_IF:%[0-9]+]]:sreg_64 = SI_IF [[V_CMP_LT_I32_e64_]], %bb.2, implicit-def dead $…
277 ; GFX9-NEXT: S_BRANCH %bb.1
278 ; GFX9-NEXT: {{ $}}
279 ; GFX9-NEXT: bb.1:
280 ; GFX9-NEXT: successors: %bb.2(0x80000000)
281 ; GFX9-NEXT: {{ $}}
282 ; GFX9-NEXT: {{ $}}
283 ; GFX9-NEXT: bb.2:
284 ; GFX9-NEXT: successors: %bb.3(0x80000000)
285 ; GFX9-NEXT: {{ $}}
286 ; GFX9-NEXT: S_NOP 0, implicit %5
287 …; GFX9-NEXT: SI_END_CF [[SI_IF]], implicit-def dead $exec, implicit-def dead $scc, implicit $exec
288 ; GFX9-NEXT: {{ $}}
289 ; GFX9-NEXT: bb.3:
290 ; GFX9-NEXT: S_ENDPGM 0, implicit %6
324 ; GFX9-LABEL: name: test_def_and_use_in_loop_sink_fmac
325 ; GFX9: bb.0.entry:
326 ; GFX9-NEXT: successors: %bb.1(0x80000000)
327 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vcc
328 ; GFX9-NEXT: {{ $}}
329 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
330 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
331 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
332 ; GFX9-NEXT: {{ $}}
333 ; GFX9-NEXT: bb.1:
334 ; GFX9-NEXT: successors: %bb.2(0x40000000), %bb.3(0x40000000)
335 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vcc
336 ; GFX9-NEXT: {{ $}}
337 ; GFX9-NEXT: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 0
338 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:vreg_64 = COPY [[S_MOV_B64_]]
339 …; GFX9-NEXT: [[GLOBAL_LOAD_DWORD:%[0-9]+]]:vgpr_32 = GLOBAL_LOAD_DWORD [[COPY3]], 0, 0, implicit…
340 …; GFX9-NEXT: [[GLOBAL_LOAD_DWORD1:%[0-9]+]]:vgpr_32 = GLOBAL_LOAD_DWORD [[COPY2]], 0, 0, implici…
341 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:vgpr_32(s32) = COPY $vgpr0
342 ; GFX9-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 1
343 …; GFX9-NEXT: [[V_CMP_LT_I32_e64_:%[0-9]+]]:sreg_64 = V_CMP_LT_I32_e64 [[COPY4]](s32), [[S_MOV_B3…
344 …; GFX9-NEXT: [[SI_IF:%[0-9]+]]:sreg_64 = SI_IF [[V_CMP_LT_I32_e64_]], %bb.3, implicit-def dead $…
345 ; GFX9-NEXT: S_BRANCH %bb.2
346 ; GFX9-NEXT: {{ $}}
347 ; GFX9-NEXT: bb.2:
348 ; GFX9-NEXT: successors: %bb.3(0x80000000)
349 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vcc
350 ; GFX9-NEXT: {{ $}}
351 ; GFX9-NEXT: S_NOP 0
352 ; GFX9-NEXT: {{ $}}
353 ; GFX9-NEXT: bb.3:
354 ; GFX9-NEXT: successors: %bb.4(0x40000000), %bb.6(0x40000000)
355 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vcc
356 ; GFX9-NEXT: {{ $}}
357 …; GFX9-NEXT: %6:vgpr_32 = contract nofpexcept V_FMAC_F32_e64 0, [[GLOBAL_LOAD_DWORD]], 0, [[COPY…
358 …; GFX9-NEXT: %8:vgpr_32 = contract nofpexcept V_FMAC_F32_e64 0, [[GLOBAL_LOAD_DWORD1]], 0, [[COP…
359 ; GFX9-NEXT: S_NOP 0, implicit %6, implicit %8
360 …; GFX9-NEXT: SI_END_CF [[SI_IF]], implicit-def dead $exec, implicit-def dead $scc, implicit $exec
361 ; GFX9-NEXT: S_CBRANCH_EXECZ %bb.6, implicit $exec
362 ; GFX9-NEXT: {{ $}}
363 ; GFX9-NEXT: bb.4:
364 ; GFX9-NEXT: successors: %bb.5(0x04000000), %bb.4(0x7c000000)
365 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vcc
366 ; GFX9-NEXT: {{ $}}
367 ; GFX9-NEXT: S_NOP 0
368 ; GFX9-NEXT: S_CBRANCH_EXECZ %bb.4, implicit $exec
369 ; GFX9-NEXT: {{ $}}
370 ; GFX9-NEXT: bb.5:
371 ; GFX9-NEXT: successors: %bb.6(0x80000000)
372 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vcc
373 ; GFX9-NEXT: {{ $}}
374 ; GFX9-NEXT: S_NOP 0
375 ; GFX9-NEXT: {{ $}}
376 ; GFX9-NEXT: bb.6:
377 ; GFX9-NEXT: successors: %bb.7(0x04000000), %bb.1(0x7c000000)
378 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vcc
379 ; GFX9-NEXT: {{ $}}
380 ; GFX9-NEXT: S_CBRANCH_VCCZ %bb.1, implicit $vcc
381 ; GFX9-NEXT: {{ $}}
382 ; GFX9-NEXT: bb.7:
383 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vcc
384 ; GFX9-NEXT: {{ $}}
385 ; GFX9-NEXT: S_ENDPGM 0
454 ; GFX9-LABEL: name: test_no_sink_def_into_loop
455 ; GFX9: bb.0.entry:
456 ; GFX9-NEXT: successors: %bb.1(0x80000000)
457 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vcc
458 ; GFX9-NEXT: {{ $}}
459 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
460 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
461 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
462 ; GFX9-NEXT: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 0
463 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:vreg_64 = COPY [[S_MOV_B64_]]
464 …; GFX9-NEXT: [[GLOBAL_LOAD_DWORD:%[0-9]+]]:vgpr_32 = GLOBAL_LOAD_DWORD killed [[COPY3]], 0, 0, i…
465 …; GFX9-NEXT: %6:vgpr_32 = contract nofpexcept V_FMAC_F32_e64 0, [[GLOBAL_LOAD_DWORD]], 0, [[COPY…
466 …; GFX9-NEXT: [[GLOBAL_LOAD_DWORD1:%[0-9]+]]:vgpr_32 = GLOBAL_LOAD_DWORD killed [[COPY2]], 0, 0, …
467 …; GFX9-NEXT: %8:vgpr_32 = contract nofpexcept V_FMAC_F32_e64 0, [[GLOBAL_LOAD_DWORD1]], 0, [[COP…
468 ; GFX9-NEXT: {{ $}}
469 ; GFX9-NEXT: bb.1:
470 ; GFX9-NEXT: successors: %bb.2(0x40000000), %bb.3(0x40000000)
471 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vcc
472 ; GFX9-NEXT: {{ $}}
473 ; GFX9-NEXT: S_NOP 0, implicit %6, implicit %8
474 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:vgpr_32(s32) = COPY $vgpr0
475 ; GFX9-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 1
476 …; GFX9-NEXT: [[V_CMP_LT_I32_e64_:%[0-9]+]]:sreg_64 = V_CMP_LT_I32_e64 [[COPY4]](s32), [[S_MOV_B3…
477 …; GFX9-NEXT: [[SI_IF:%[0-9]+]]:sreg_64 = SI_IF [[V_CMP_LT_I32_e64_]], %bb.3, implicit-def dead $…
478 ; GFX9-NEXT: S_BRANCH %bb.2
479 ; GFX9-NEXT: {{ $}}
480 ; GFX9-NEXT: bb.2:
481 ; GFX9-NEXT: successors: %bb.3(0x80000000)
482 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vcc
483 ; GFX9-NEXT: {{ $}}
484 ; GFX9-NEXT: S_NOP 0
485 ; GFX9-NEXT: {{ $}}
486 ; GFX9-NEXT: bb.3:
487 ; GFX9-NEXT: successors: %bb.4(0x40000000), %bb.6(0x40000000)
488 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vcc
489 ; GFX9-NEXT: {{ $}}
490 …; GFX9-NEXT: SI_END_CF [[SI_IF]], implicit-def dead $exec, implicit-def dead $scc, implicit $exec
491 ; GFX9-NEXT: S_CBRANCH_EXECZ %bb.6, implicit $exec
492 ; GFX9-NEXT: {{ $}}
493 ; GFX9-NEXT: bb.4:
494 ; GFX9-NEXT: successors: %bb.5(0x04000000), %bb.4(0x7c000000)
495 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vcc
496 ; GFX9-NEXT: {{ $}}
497 ; GFX9-NEXT: S_NOP 0
498 ; GFX9-NEXT: S_CBRANCH_EXECZ %bb.4, implicit $exec
499 ; GFX9-NEXT: {{ $}}
500 ; GFX9-NEXT: bb.5:
501 ; GFX9-NEXT: successors: %bb.6(0x80000000)
502 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vcc
503 ; GFX9-NEXT: {{ $}}
504 ; GFX9-NEXT: S_NOP 0
505 ; GFX9-NEXT: {{ $}}
506 ; GFX9-NEXT: bb.6:
507 ; GFX9-NEXT: successors: %bb.7(0x04000000), %bb.1(0x7c000000)
508 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vcc
509 ; GFX9-NEXT: {{ $}}
510 ; GFX9-NEXT: S_CBRANCH_VCCZ %bb.1, implicit $vcc
511 ; GFX9-NEXT: {{ $}}
512 ; GFX9-NEXT: bb.7:
513 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vcc
514 ; GFX9-NEXT: {{ $}}
515 ; GFX9-NEXT: S_ENDPGM 0
584 ; GFX9-LABEL: name: test_no_sink_def_into_loop2
585 ; GFX9: bb.0.entry:
586 ; GFX9-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
587 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vcc
588 ; GFX9-NEXT: {{ $}}
589 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
590 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
591 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
592 ; GFX9-NEXT: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 0
593 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:vreg_64 = COPY [[S_MOV_B64_]]
594 …; GFX9-NEXT: [[GLOBAL_LOAD_DWORD:%[0-9]+]]:vgpr_32 = GLOBAL_LOAD_DWORD killed [[COPY3]], 0, 0, i…
595 …; GFX9-NEXT: %6:vgpr_32 = contract nofpexcept V_FMAC_F32_e64 0, [[GLOBAL_LOAD_DWORD]], 0, [[COPY…
596 …; GFX9-NEXT: [[GLOBAL_LOAD_DWORD1:%[0-9]+]]:vgpr_32 = GLOBAL_LOAD_DWORD killed [[COPY2]], 0, 0, …
597 …; GFX9-NEXT: %8:vgpr_32 = contract nofpexcept V_FMAC_F32_e64 0, [[GLOBAL_LOAD_DWORD1]], 0, [[COP…
598 ; GFX9-NEXT: S_CBRANCH_EXECZ %bb.2, implicit $exec
599 ; GFX9-NEXT: S_BRANCH %bb.1
600 ; GFX9-NEXT: {{ $}}
601 ; GFX9-NEXT: bb.1:
602 ; GFX9-NEXT: successors: %bb.2(0x80000000)
603 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vcc
604 ; GFX9-NEXT: {{ $}}
605 ; GFX9-NEXT: S_NOP 0
606 ; GFX9-NEXT: S_BRANCH %bb.2
607 ; GFX9-NEXT: {{ $}}
608 ; GFX9-NEXT: bb.2:
609 ; GFX9-NEXT: successors: %bb.3(0x40000000), %bb.4(0x40000000)
610 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vcc
611 ; GFX9-NEXT: {{ $}}
612 ; GFX9-NEXT: S_NOP 0, implicit %6, implicit %8
613 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:vgpr_32(s32) = COPY $vgpr0
614 ; GFX9-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 1
615 …; GFX9-NEXT: [[V_CMP_LT_I32_e64_:%[0-9]+]]:sreg_64 = V_CMP_LT_I32_e64 [[COPY4]](s32), [[S_MOV_B3…
616 …; GFX9-NEXT: [[SI_IF:%[0-9]+]]:sreg_64 = SI_IF [[V_CMP_LT_I32_e64_]], %bb.4, implicit-def dead $…
617 ; GFX9-NEXT: S_BRANCH %bb.3
618 ; GFX9-NEXT: {{ $}}
619 ; GFX9-NEXT: bb.3:
620 ; GFX9-NEXT: successors: %bb.4(0x80000000)
621 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vcc
622 ; GFX9-NEXT: {{ $}}
623 ; GFX9-NEXT: S_NOP 0
624 ; GFX9-NEXT: S_BRANCH %bb.4
625 ; GFX9-NEXT: {{ $}}
626 ; GFX9-NEXT: bb.4:
627 ; GFX9-NEXT: successors: %bb.5(0x40000000), %bb.7(0x40000000)
628 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vcc
629 ; GFX9-NEXT: {{ $}}
630 …; GFX9-NEXT: SI_END_CF [[SI_IF]], implicit-def dead $exec, implicit-def dead $scc, implicit $exec
631 ; GFX9-NEXT: S_CBRANCH_EXECZ %bb.7, implicit $exec
632 ; GFX9-NEXT: S_BRANCH %bb.5
633 ; GFX9-NEXT: {{ $}}
634 ; GFX9-NEXT: bb.5:
635 ; GFX9-NEXT: successors: %bb.6(0x04000000), %bb.5(0x7c000000)
636 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vcc
637 ; GFX9-NEXT: {{ $}}
638 ; GFX9-NEXT: S_NOP 0
639 ; GFX9-NEXT: S_CBRANCH_EXECZ %bb.5, implicit $exec
640 ; GFX9-NEXT: S_BRANCH %bb.6
641 ; GFX9-NEXT: {{ $}}
642 ; GFX9-NEXT: bb.6:
643 ; GFX9-NEXT: successors: %bb.7(0x80000000)
644 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vcc
645 ; GFX9-NEXT: {{ $}}
646 ; GFX9-NEXT: S_NOP 0
647 ; GFX9-NEXT: S_BRANCH %bb.7
648 ; GFX9-NEXT: {{ $}}
649 ; GFX9-NEXT: bb.7:
650 ; GFX9-NEXT: successors: %bb.8(0x04000000), %bb.2(0x7c000000)
651 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vcc
652 ; GFX9-NEXT: {{ $}}
653 ; GFX9-NEXT: S_CBRANCH_VCCZ %bb.2, implicit $vcc
654 ; GFX9-NEXT: S_BRANCH %bb.8
655 ; GFX9-NEXT: {{ $}}
656 ; GFX9-NEXT: bb.8:
657 ; GFX9-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2_vgpr3, $vcc
658 ; GFX9-NEXT: {{ $}}
659 ; GFX9-NEXT: S_ENDPGM 0