# 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 ...