| # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 6 |
| # RUN: llc -mtriple=amdgcn -mcpu=gfx1250 -run-pass=amdgpu-lower-vgpr-encoding -o - %s | FileCheck %s |
| |
| --- |
| name: multi |
| tracksRegLiveness: true |
| body: | |
| bb.0: |
| liveins: $vgpr10, $vgpr11, $vgpr900, $vgpr901 |
| ; CHECK-LABEL: name: multi |
| ; CHECK: liveins: $vgpr10, $vgpr11, $vgpr900, $vgpr901 |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: $vgpr11 = nofpexcept V_EXP_F32_e32 killed $vgpr10, implicit $mode, implicit $exec |
| ; CHECK-NEXT: S_SET_VGPR_MSB 65, implicit-def $mode |
| ; CHECK-NEXT: S_WAIT_DSCNT 0 |
| ; CHECK-NEXT: S_BARRIER_SIGNAL_IMM -1 |
| ; CHECK-NEXT: S_BARRIER_WAIT -1 |
| ; CHECK-NEXT: $vgpr256 = nofpexcept V_EXP_F32_e32 killed $vgpr257, implicit $mode, implicit $exec |
| ; CHECK-NEXT: S_ENDPGM 0 |
| $vgpr11 = nofpexcept V_EXP_F32_e32 killed $vgpr10, implicit $mode, implicit $exec |
| S_WAIT_DSCNT 0 |
| S_BARRIER_SIGNAL_IMM -1 |
| S_BARRIER_WAIT -1 |
| $vgpr256 = nofpexcept V_EXP_F32_e32 killed $vgpr257, implicit $mode, implicit $exec |
| S_ENDPGM 0 |
| ... |
| |
| --- |
| name: high_vgprs |
| tracksRegLiveness: true |
| body: | |
| bb.0: |
| liveins: $vgpr10, $vgpr11, $vgpr900, $vgpr901 |
| ; CHECK-LABEL: name: high_vgprs |
| ; CHECK: liveins: $vgpr10, $vgpr11, $vgpr900, $vgpr901 |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: S_SET_VGPR_MSB 65, implicit-def $mode |
| ; CHECK-NEXT: S_BARRIER_SIGNAL_IMM -1 |
| ; CHECK-NEXT: S_BARRIER_WAIT -1 |
| ; CHECK-NEXT: $vgpr256 = nofpexcept V_EXP_F32_e32 killed $vgpr257, implicit $mode, implicit $exec |
| ; CHECK-NEXT: S_ENDPGM 0 |
| S_BARRIER_SIGNAL_IMM -1 |
| S_BARRIER_WAIT -1 |
| $vgpr256 = nofpexcept V_EXP_F32_e32 killed $vgpr257, implicit $mode, implicit $exec |
| S_ENDPGM 0 |
| ... |
| |
| --- |
| name: no_control |
| tracksRegLiveness: true |
| body: | |
| bb.0: |
| liveins: $vgpr10, $vgpr11, $vgpr900, $vgpr901 |
| ; CHECK-LABEL: name: no_control |
| ; CHECK: liveins: $vgpr10, $vgpr11, $vgpr900, $vgpr901 |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: $vgpr11 = nofpexcept V_EXP_F32_e32 killed $vgpr10, implicit $mode, implicit $exec |
| ; CHECK-NEXT: S_SET_VGPR_MSB 65, implicit-def $mode |
| ; CHECK-NEXT: $vgpr256 = nofpexcept V_EXP_F32_e32 killed $vgpr257, implicit $mode, implicit $exec |
| ; CHECK-NEXT: S_ENDPGM 0 |
| $vgpr11 = nofpexcept V_EXP_F32_e32 killed $vgpr10, implicit $mode, implicit $exec |
| $vgpr256 = nofpexcept V_EXP_F32_e32 killed $vgpr257, implicit $mode, implicit $exec |
| S_ENDPGM 0 |
| ... |
| |
| --- |
| name: triple |
| tracksRegLiveness: true |
| body: | |
| bb.0: |
| liveins: $vgpr4, $vgpr515 |
| ; CHECK-LABEL: name: triple |
| ; CHECK: liveins: $vgpr4, $vgpr515 |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: S_SET_VGPR_MSB 68, implicit-def $mode |
| ; CHECK-NEXT: $vgpr260 = V_AND_B32_e32 496, $vgpr260, implicit $exec |
| ; CHECK-NEXT: S_SET_VGPR_MSB 17544, implicit-def $mode |
| ; CHECK-NEXT: $vgpr514 = V_LSHRREV_B32_e32 4, $vgpr515, implicit $exec |
| ; CHECK-NEXT: S_SET_VGPR_MSB 34884, implicit-def $mode |
| ; CHECK-NEXT: $vgpr260 = V_AND_B32_e32 496, $vgpr260, implicit $exec |
| ; CHECK-NEXT: S_ENDPGM 0 |
| $vgpr260 = V_AND_B32_e32 496, $vgpr260, implicit $exec |
| $vgpr514 = V_LSHRREV_B32_e32 4, $vgpr515, implicit $exec |
| $vgpr260 = V_AND_B32_e32 496, $vgpr260, implicit $exec |
| S_ENDPGM 0 |
| ... |
| |
| --- |
| name: xcnt |
| tracksRegLiveness: true |
| body: | |
| bb.0: |
| liveins: $vgpr10, $vgpr257 |
| ; CHECK-LABEL: name: xcnt |
| ; CHECK: liveins: $vgpr10, $vgpr257 |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: $vgpr11 = nofpexcept V_EXP_F32_e32 killed $vgpr10, implicit $mode, implicit $exec |
| ; CHECK-NEXT: S_SET_VGPR_MSB 65, implicit-def $mode |
| ; CHECK-NEXT: $vgpr256 = nofpexcept V_EXP_F32_e32 killed $vgpr257, implicit $mode, implicit $exec |
| ; CHECK-NEXT: S_ENDPGM 0 |
| $vgpr11 = nofpexcept V_EXP_F32_e32 killed $vgpr10, implicit $mode, implicit $exec |
| S_WAIT_XCNT 0 |
| $vgpr256 = nofpexcept V_EXP_F32_e32 killed $vgpr257, implicit $mode, implicit $exec |
| S_ENDPGM 0 |
| ... |
| |
| --- |
| name: asynccnt |
| tracksRegLiveness: true |
| body: | |
| bb.0: |
| liveins: $vgpr10, $vgpr257 |
| ; CHECK-LABEL: name: asynccnt |
| ; CHECK: liveins: $vgpr10, $vgpr257 |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: $vgpr11 = nofpexcept V_EXP_F32_e32 killed $vgpr10, implicit $mode, implicit $exec |
| ; CHECK-NEXT: S_WAIT_ASYNCCNT 0, implicit $asynccnt, implicit-def $asynccnt |
| ; CHECK-NEXT: S_SET_VGPR_MSB 65, implicit-def $mode |
| ; CHECK-NEXT: $vgpr256 = nofpexcept V_EXP_F32_e32 killed $vgpr257, implicit $mode, implicit $exec |
| ; CHECK-NEXT: S_ENDPGM 0 |
| $vgpr11 = nofpexcept V_EXP_F32_e32 killed $vgpr10, implicit $mode, implicit $exec |
| S_WAIT_ASYNCCNT 0, implicit $asynccnt, implicit-def $asynccnt |
| $vgpr256 = nofpexcept V_EXP_F32_e32 killed $vgpr257, implicit $mode, implicit $exec |
| S_ENDPGM 0 |
| ... |