408 lines
16 KiB
YAML
408 lines
16 KiB
YAML
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
|
|
# RUN: llc -march=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -verify-machineinstrs -run-pass post-RA-hazard-rec -o - %s | FileCheck -check-prefix=GCN %s
|
|
|
|
---
|
|
name: partial_forwarding_1_hazard
|
|
body: |
|
|
bb.0:
|
|
; GCN-LABEL: name: partial_forwarding_1_hazard
|
|
; GCN: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $exec = S_MOV_B64 -1
|
|
; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: S_WAITCNT_DEPCTR 4095
|
|
; GCN-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_ENDPGM 0
|
|
$vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
$exec = S_MOV_B64 -1
|
|
$vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
|
|
S_ENDPGM 0
|
|
...
|
|
|
|
---
|
|
name: partial_forwarding_2_hazard
|
|
body: |
|
|
bb.0:
|
|
; GCN-LABEL: name: partial_forwarding_2_hazard
|
|
; GCN: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $sgpr0 = S_MOV_B32 0
|
|
; GCN-NEXT: $sgpr1 = S_MOV_B32 0
|
|
; GCN-NEXT: $sgpr2 = S_MOV_B32 0
|
|
; GCN-NEXT: $exec = S_MOV_B64 -1
|
|
; GCN-NEXT: $sgpr3 = S_MOV_B32 0
|
|
; GCN-NEXT: $sgpr4 = S_MOV_B32 0
|
|
; GCN-NEXT: $sgpr5 = S_MOV_B32 0
|
|
; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $sgpr6 = S_MOV_B32 0
|
|
; GCN-NEXT: $sgpr7 = S_MOV_B32 0
|
|
; GCN-NEXT: $sgpr8 = S_MOV_B32 0
|
|
; GCN-NEXT: $sgpr9 = S_MOV_B32 0
|
|
; GCN-NEXT: $sgpr10 = S_MOV_B32 0
|
|
; GCN-NEXT: S_WAITCNT_DEPCTR 4095
|
|
; GCN-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_ENDPGM 0
|
|
$vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
$sgpr0 = S_MOV_B32 0
|
|
$sgpr1 = S_MOV_B32 0
|
|
$sgpr2 = S_MOV_B32 0
|
|
$exec = S_MOV_B64 -1
|
|
$sgpr3 = S_MOV_B32 0
|
|
$sgpr4 = S_MOV_B32 0
|
|
$sgpr5 = S_MOV_B32 0
|
|
$vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
$sgpr6 = S_MOV_B32 0
|
|
$sgpr7 = S_MOV_B32 0
|
|
$sgpr8 = S_MOV_B32 0
|
|
$sgpr9 = S_MOV_B32 0
|
|
$sgpr10 = S_MOV_B32 0
|
|
$vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
|
|
S_ENDPGM 0
|
|
...
|
|
|
|
---
|
|
name: partial_forwarding_3_hazard
|
|
body: |
|
|
bb.0:
|
|
; GCN-LABEL: name: partial_forwarding_3_hazard
|
|
; GCN: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $exec = S_MOV_B64 -1
|
|
; GCN-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr15 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: S_WAITCNT_DEPCTR 4095
|
|
; GCN-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_ENDPGM 0
|
|
$vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr10 = V_MOV_B32_e32 0, implicit $exec
|
|
$exec = S_MOV_B64 -1
|
|
$vgpr11 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr12 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr13 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr14 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr15 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
|
|
S_ENDPGM 0
|
|
...
|
|
|
|
---
|
|
name: partial_forwarding_3_no_hazard_1
|
|
body: |
|
|
bb.0:
|
|
; GCN-LABEL: name: partial_forwarding_3_no_hazard_1
|
|
; GCN: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr20 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $exec = S_MOV_B64 -1
|
|
; GCN-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr15 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_ENDPGM 0
|
|
$vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr10 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr20 = V_MOV_B32_e32 0, implicit $exec
|
|
$exec = S_MOV_B64 -1
|
|
$vgpr11 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr12 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr13 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr14 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr15 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
|
|
S_ENDPGM 0
|
|
...
|
|
|
|
---
|
|
name: partial_forwarding_3_no_hazard_2
|
|
body: |
|
|
bb.0:
|
|
; GCN-LABEL: name: partial_forwarding_3_no_hazard_2
|
|
; GCN: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $exec = S_MOV_B64 -1
|
|
; GCN-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr20 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr15 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_ENDPGM 0
|
|
$vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr10 = V_MOV_B32_e32 0, implicit $exec
|
|
$exec = S_MOV_B64 -1
|
|
$vgpr11 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr20 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr12 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr13 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr14 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr15 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
|
|
S_ENDPGM 0
|
|
...
|
|
|
|
---
|
|
name: partial_forwarding_3_no_hazard_3
|
|
body: |
|
|
bb.0:
|
|
; GCN-LABEL: name: partial_forwarding_3_no_hazard_3
|
|
; GCN: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $exec = S_MOV_B64 -1
|
|
; GCN-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr15 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr20 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_ENDPGM 0
|
|
$vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr10 = V_MOV_B32_e32 0, implicit $exec
|
|
$exec = S_MOV_B64 -1
|
|
$vgpr11 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr12 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr13 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr14 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr15 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr20 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
|
|
S_ENDPGM 0
|
|
...
|
|
|
|
---
|
|
name: partial_forwarding_4_hazard
|
|
body: |
|
|
bb.0:
|
|
; GCN-LABEL: name: partial_forwarding_4_hazard
|
|
; GCN: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $exec = S_MOV_B64 -1
|
|
; GCN-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr15 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: S_WAITCNT_DEPCTR 4095
|
|
; GCN-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_ENDPGM 0
|
|
$vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
$exec = S_MOV_B64 -1
|
|
$vgpr10 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr11 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr12 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr13 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr14 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr15 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
|
|
S_ENDPGM 0
|
|
...
|
|
|
|
---
|
|
name: partial_forwarding_4_no_hazard
|
|
body: |
|
|
bb.0:
|
|
; GCN-LABEL: name: partial_forwarding_4_no_hazard
|
|
; GCN: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $exec = S_MOV_B64 -1
|
|
; GCN-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr21 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr15 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_ENDPGM 0
|
|
$vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
$exec = S_MOV_B64 -1
|
|
$vgpr10 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr11 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr21 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr12 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr13 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr14 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr15 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
|
|
S_ENDPGM 0
|
|
...
|
|
|
|
---
|
|
name: partial_forwarding_5_hazard
|
|
body: |
|
|
bb.0:
|
|
; GCN-LABEL: name: partial_forwarding_5_hazard
|
|
; GCN: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $exec = S_MOV_B64 -1
|
|
; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr15 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: S_WAITCNT_DEPCTR 4095
|
|
; GCN-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_ENDPGM 0
|
|
$vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr10 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr11 = V_MOV_B32_e32 0, implicit $exec
|
|
$exec = S_MOV_B64 -1
|
|
$vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr12 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr13 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr14 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr15 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
|
|
S_ENDPGM 0
|
|
...
|
|
|
|
---
|
|
name: partial_forwarding_5_no_hazard
|
|
body: |
|
|
bb.0:
|
|
; GCN-LABEL: name: partial_forwarding_5_no_hazard
|
|
; GCN: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr21 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $exec = S_MOV_B64 -1
|
|
; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr15 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_ENDPGM 0
|
|
$vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr10 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr11 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr21 = V_MOV_B32_e32 0, implicit $exec
|
|
$exec = S_MOV_B64 -1
|
|
$vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr12 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr13 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr14 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr15 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
|
|
S_ENDPGM 0
|
|
...
|
|
|
|
---
|
|
name: partial_forwarding_branching_1a
|
|
body: |
|
|
; GCN-LABEL: name: partial_forwarding_branching_1a
|
|
; GCN: bb.0:
|
|
; GCN-NEXT: successors: %bb.2(0x80000000)
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $exec = S_MOV_B64 -1
|
|
; GCN-NEXT: S_BRANCH %bb.2
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: bb.1:
|
|
; GCN-NEXT: successors: %bb.2(0x80000000)
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr30 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr31 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: S_BRANCH %bb.2
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: bb.2:
|
|
; GCN-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr15 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: S_WAITCNT_DEPCTR 4095
|
|
; GCN-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_ENDPGM 0
|
|
bb.0:
|
|
$vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
$exec = S_MOV_B64 -1
|
|
S_BRANCH %bb.2
|
|
bb.1:
|
|
$vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr30 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr31 = V_MOV_B32_e32 0, implicit $exec
|
|
S_BRANCH %bb.2
|
|
bb.2:
|
|
$vgpr10 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr11 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr12 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr13 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr14 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr15 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
|
|
S_ENDPGM 0
|
|
...
|
|
|
|
---
|
|
name: partial_forwarding_branching_1b
|
|
body: |
|
|
; GCN-LABEL: name: partial_forwarding_branching_1b
|
|
; GCN: bb.0:
|
|
; GCN-NEXT: successors: %bb.2(0x80000000)
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr30 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr31 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: S_BRANCH %bb.2
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: bb.1:
|
|
; GCN-NEXT: successors: %bb.2(0x80000000)
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $exec = S_MOV_B64 -1
|
|
; GCN-NEXT: S_BRANCH %bb.2
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: bb.2:
|
|
; GCN-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr15 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: S_WAITCNT_DEPCTR 4095
|
|
; GCN-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_ENDPGM 0
|
|
bb.0:
|
|
$vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr30 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr31 = V_MOV_B32_e32 0, implicit $exec
|
|
S_BRANCH %bb.2
|
|
bb.1:
|
|
$vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
$exec = S_MOV_B64 -1
|
|
S_BRANCH %bb.2
|
|
bb.2:
|
|
$vgpr10 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr11 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr12 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr13 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr14 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr15 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr2 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec
|
|
S_ENDPGM 0
|
|
...
|