| # RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 \ |
| # RUN: -start-before=greedy,0 -stop-after=virtregrewriter,0 -pass-remarks='.*' -pass-remarks-output=%t.yaml -o /dev/null %s |
| # RUN: FileCheck %s < %t.yaml |
| |
| # CHECK: Name: SpillReloadCopies |
| # CHECK-NEXT: Function: func |
| # CHECK-NEXT: Args: |
| # CHECK-NEXT: - NumVRCopies: '3' |
| # CHECK-NEXT: - String: ' virtual registers copies ' |
| |
| # Make sure the remarks do not crash with subregisters on unassigned |
| # virtual register copies. |
| |
| --- |
| name: func |
| tracksRegLiveness: true |
| body: | |
| bb.0: |
| liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $sgpr1 |
| |
| ; Unassigned dest with subreg |
| undef %0.sub0:vreg_64 = COPY $vgpr0_vgpr1 |
| |
| ; unassigned src and dest with subregs |
| undef %1.sub1:vreg_64 = COPY %0.sub0 |
| |
| %2:vreg_64 = COPY $vgpr2_vgpr3 |
| |
| ; Unassigned src with subregs |
| $vgpr0 = COPY %2.sub0 |
| |
| ; Dummy SGPR to allocate to ensure allocation ran. |
| %3:sreg_32 = COPY $sgpr1 |
| S_ENDPGM 0, implicit %0, implicit %1, implicit $vgpr0, implicit %3 |
| |
| ... |