92 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 52# RUN: llc -mtriple=amdgcn --run-pass=livevars -o - %s | FileCheck %s3---4# Check that super register is defined for an sgpr copy.5name: sgpr_copy6tracksRegLiveness: true7body: |8 bb.0:9 10 ; CHECK-LABEL: name: sgpr_copy11 ; CHECK: %sval:sreg_32 = S_MOV_B32 012 ; CHECK-NEXT: $sgpr0 = COPY %sval13 ; CHECK-NEXT: $sgpr1 = COPY %sval14 ; CHECK-NEXT: $sgpr2 = COPY %sval15 ; CHECK-NEXT: $sgpr3 = COPY killed %sval16 ; CHECK-NEXT: SI_RETURN implicit killed $sgpr0_sgpr1_sgpr2_sgpr317 %sval:sreg_32 = S_MOV_B32 018 19 $sgpr0 = COPY %sval20 $sgpr1 = COPY %sval21 $sgpr2 = COPY %sval22 $sgpr3 = COPY %sval23 SI_RETURN implicit $sgpr0_sgpr1_sgpr2_sgpr324 25...26---27# Check that super register is defined for a vgpr vector copy.28name: vgpr_copy29tracksRegLiveness: true30body: |31 bb.0:32 33 ; CHECK-LABEL: name: vgpr_copy34 ; CHECK: %vval:vgpr_32 = V_MOV_B32_e32 0, implicit $exec35 ; CHECK-NEXT: $vgpr0 = COPY %vval36 ; CHECK-NEXT: $vgpr1 = COPY %vval37 ; CHECK-NEXT: $vgpr2 = COPY %vval38 ; CHECK-NEXT: $vgpr3 = COPY killed %vval39 ; CHECK-NEXT: dead [[COPY:%[0-9]+]]:vgpr_32 = COPY killed $vgpr0_vgpr1_vgpr2_vgpr340 %vval:vgpr_32 = V_MOV_B32_e32 0, implicit $exec41 42 $vgpr0 = COPY %vval43 $vgpr1 = COPY %vval44 $vgpr2 = COPY %vval45 $vgpr3 = COPY %vval46 %0:vgpr_32 = COPY $vgpr0_vgpr1_vgpr2_vgpr347 48...49---50# Check that super register is defined when there is a hole.51name: sgpr_copy_hole52tracksRegLiveness: true53body: |54 bb.0:55 ; CHECK-LABEL: name: sgpr_copy_hole56 ; CHECK: %sval:sreg_32 = S_MOV_B32 057 ; CHECK-NEXT: $sgpr0 = COPY %sval58 ; CHECK-NEXT: $sgpr2 = COPY %sval59 ; CHECK-NEXT: $sgpr3 = COPY killed %sval60 ; CHECK-NEXT: SI_RETURN implicit killed $sgpr0_sgpr1_sgpr2_sgpr361 %sval:sreg_32 = S_MOV_B32 062 63 $sgpr0 = COPY %sval64 $sgpr2 = COPY %sval65 $sgpr3 = COPY %sval66 SI_RETURN implicit $sgpr0_sgpr1_sgpr2_sgpr367 68...69---70# Check that super register is defined when a pair interrupts the sequence.71name: vgpr_copy_pair72tracksRegLiveness: true73body: |74 bb.0:75 ; CHECK-LABEL: name: vgpr_copy_pair76 ; CHECK: %vval:vgpr_32 = V_MOV_B32_e32 0, implicit $exec77 ; CHECK-NEXT: $vgpr0 = COPY %vval78 ; CHECK-NEXT: $vgpr1 = COPY %vval79 ; CHECK-NEXT: $vgpr2 = COPY %vval80 ; CHECK-NEXT: $vgpr3 = COPY killed %vval81 ; CHECK-NEXT: dead [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr1_vgpr282 ; CHECK-NEXT: dead [[COPY1:%[0-9]+]]:vgpr_32 = COPY killed $vgpr0_vgpr1_vgpr2_vgpr383 %vval:vgpr_32 = V_MOV_B32_e32 0, implicit $exec84 85 $vgpr0 = COPY %vval86 $vgpr1 = COPY %vval87 $vgpr2 = COPY %vval88 $vgpr3 = COPY %vval89 %0:vgpr_32 = COPY $vgpr1_vgpr290 %1:vgpr_32 = COPY $vgpr0_vgpr1_vgpr2_vgpr391...92