brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.6 KiB · 98b179f Raw
203 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 52# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx942 -run-pass=si-fold-operands -o - %s | FileCheck %s3 4# Test behavior of folding into op_sel operands through reg_sequence5# with subregister uses6 7---8name:            issue1393179tracksRegLiveness: true10body:             |11  bb.0:12    liveins: $vgpr013 14    ; CHECK-LABEL: name: issue13931715    ; CHECK: liveins: $vgpr016    ; CHECK-NEXT: {{  $}}17    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr018    ; CHECK-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 110731264019    ; CHECK-NEXT: [[S_MOV_B32_1:%[0-9]+]]:sreg_32 = S_MOV_B32 100663296020    ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_64 = REG_SEQUENCE killed [[S_MOV_B32_1]], %subreg.sub0, killed [[S_MOV_B32_]], %subreg.sub121    ; CHECK-NEXT: [[V_PK_ADD_F16_:%[0-9]+]]:vgpr_32 = nofpexcept V_PK_ADD_F16 8, [[COPY]], 8, [[REG_SEQUENCE]].sub1, 0, 0, 0, 0, 0, implicit $mode, implicit $exec22    ; CHECK-NEXT: S_ENDPGM 0, implicit [[V_PK_ADD_F16_]]23    %0:vgpr_32 = COPY $vgpr024    %1:sreg_32 = S_MOV_B32 110731264025    %2:sreg_32 = S_MOV_B32 100663296026    %3:sgpr_64 = REG_SEQUENCE killed %2:sreg_32, %subreg.sub0, killed %1:sreg_32, %subreg.sub127    %4:vgpr_32 = nofpexcept V_PK_ADD_F16 8, %0:vgpr_32, 8, %3.sub1:sgpr_64, 0, 0, 0, 0, 0, implicit $mode, implicit $exec28    S_ENDPGM 0, implicit %429...30 31---32name:            issue139317_sub033tracksRegLiveness: true34body:             |35  bb.0:36    liveins: $vgpr037 38    ; CHECK-LABEL: name: issue139317_sub039    ; CHECK: liveins: $vgpr040    ; CHECK-NEXT: {{  $}}41    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr042    ; CHECK-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 110731264043    ; CHECK-NEXT: [[S_MOV_B32_1:%[0-9]+]]:sreg_32 = S_MOV_B32 100663296044    ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_64 = REG_SEQUENCE killed [[S_MOV_B32_1]], %subreg.sub0, killed [[S_MOV_B32_]], %subreg.sub145    ; CHECK-NEXT: [[V_PK_ADD_F16_:%[0-9]+]]:vgpr_32 = nofpexcept V_PK_ADD_F16 8, [[COPY]], 4, 15360, 0, 0, 0, 0, 0, implicit $mode, implicit $exec46    ; CHECK-NEXT: S_ENDPGM 0, implicit [[V_PK_ADD_F16_]]47    %0:vgpr_32 = COPY $vgpr048    %1:sreg_32 = S_MOV_B32 110731264049    %2:sreg_32 = S_MOV_B32 100663296050    %3:sgpr_64 = REG_SEQUENCE killed %2:sreg_32, %subreg.sub0, killed %1:sreg_32, %subreg.sub151    %4:vgpr_32 = nofpexcept V_PK_ADD_F16 8, %0:vgpr_32, 8, %3.sub0:sgpr_64, 0, 0, 0, 0, 0, implicit $mode, implicit $exec52    S_ENDPGM 0, implicit %453...54 55---56name:            issue139317_nested_reg_sequence57tracksRegLiveness: true58body:             |59  bb.0:60    liveins: $vgpr061 62    ; CHECK-LABEL: name: issue139317_nested_reg_sequence63    ; CHECK: liveins: $vgpr064    ; CHECK-NEXT: {{  $}}65    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr066    ; CHECK-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 110731264067    ; CHECK-NEXT: [[S_MOV_B32_1:%[0-9]+]]:sreg_32 = S_MOV_B32 100663296068    ; CHECK-NEXT: [[S_MOV_B32_2:%[0-9]+]]:sreg_32 = S_MOV_B32 119120025669    ; CHECK-NEXT: [[S_MOV_B32_3:%[0-9]+]]:sreg_32 = S_MOV_B32 115764531270    ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_64 = REG_SEQUENCE killed [[S_MOV_B32_1]], %subreg.sub0, killed [[S_MOV_B32_]], %subreg.sub171    ; CHECK-NEXT: [[REG_SEQUENCE1:%[0-9]+]]:sgpr_64 = REG_SEQUENCE killed [[S_MOV_B32_2]], %subreg.sub0, killed [[S_MOV_B32_3]], %subreg.sub172    ; CHECK-NEXT: [[REG_SEQUENCE2:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[REG_SEQUENCE]], %subreg.sub0_sub1, [[REG_SEQUENCE1]], %subreg.sub2_sub373    ; CHECK-NEXT: [[V_PK_ADD_F16_:%[0-9]+]]:vgpr_32 = nofpexcept V_PK_ADD_F16 8, killed [[COPY]], 8, [[REG_SEQUENCE2]].sub1, 0, 0, 0, 0, 0, implicit $mode, implicit $exec74    ; CHECK-NEXT: S_ENDPGM 0, implicit [[V_PK_ADD_F16_]]75    %0:vgpr_32 = COPY $vgpr076    %1:sreg_32 = S_MOV_B32 110731264077    %2:sreg_32 = S_MOV_B32 100663296078    %3:sreg_32 = S_MOV_B32 119120025679    %4:sreg_32 = S_MOV_B32 115764531280    %5:sgpr_64 = REG_SEQUENCE killed %2, %subreg.sub0, killed %1, %subreg.sub181    %6:sgpr_64 = REG_SEQUENCE killed %3, %subreg.sub0, killed %4, %subreg.sub182    %7:sgpr_128 = REG_SEQUENCE %5, %subreg.sub0_sub1, %6, %subreg.sub2_sub383    %8:vgpr_32 = nofpexcept V_PK_ADD_F16 8, killed %0, 8, %7.sub1, 0, 0, 0, 0, 0, implicit $mode, implicit $exec84    S_ENDPGM 0, implicit %885 86...87 88---89name:            issue139317_foldable_neg_imm90tracksRegLiveness: true91body:             |92  bb.0:93    liveins: $vgpr094 95    ; CHECK-LABEL: name: issue139317_foldable_neg_imm96    ; CHECK: liveins: $vgpr097    ; CHECK-NEXT: {{  $}}98    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr099    ; CHECK-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 -16100    ; CHECK-NEXT: [[S_MOV_B32_1:%[0-9]+]]:sreg_32 = S_MOV_B32 1006632960101    ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_64 = REG_SEQUENCE killed [[S_MOV_B32_1]], %subreg.sub0, killed [[S_MOV_B32_]], %subreg.sub1102    ; CHECK-NEXT: [[V_PK_ADD_F16_:%[0-9]+]]:vgpr_32 = nofpexcept V_PK_ADD_F16 8, [[COPY]], 8, -16, 0, 0, 0, 0, 0, implicit $mode, implicit $exec103    ; CHECK-NEXT: S_ENDPGM 0, implicit [[V_PK_ADD_F16_]]104    %0:vgpr_32 = COPY $vgpr0105    %1:sreg_32 = S_MOV_B32 -16106    %2:sreg_32 = S_MOV_B32 1006632960107    %3:sgpr_64 = REG_SEQUENCE killed %2:sreg_32, %subreg.sub0, killed %1:sreg_32, %subreg.sub1108    %4:vgpr_32 = nofpexcept V_PK_ADD_F16 8, %0:vgpr_32, 8, %3.sub1:sgpr_64, 0, 0, 0, 0, 0, implicit $mode, implicit $exec109    S_ENDPGM 0, implicit %4110...111 112---113name:            issue139317_foldable_fp_imm_0114tracksRegLiveness: true115body:             |116  bb.0:117    liveins: $vgpr0118 119    ; CHECK-LABEL: name: issue139317_foldable_fp_imm_0120    ; CHECK: liveins: $vgpr0121    ; CHECK-NEXT: {{  $}}122    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0123    ; CHECK-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 15360124    ; CHECK-NEXT: [[S_MOV_B32_1:%[0-9]+]]:sreg_32 = S_MOV_B32 1006632960125    ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_64 = REG_SEQUENCE killed [[S_MOV_B32_1]], %subreg.sub0, killed [[S_MOV_B32_]], %subreg.sub1126    ; CHECK-NEXT: [[V_PK_ADD_F16_:%[0-9]+]]:vgpr_32 = nofpexcept V_PK_ADD_F16 8, [[COPY]], 8, 15360, 0, 0, 0, 0, 0, implicit $mode, implicit $exec127    ; CHECK-NEXT: S_ENDPGM 0, implicit [[V_PK_ADD_F16_]]128    %0:vgpr_32 = COPY $vgpr0129    %1:sreg_32 = S_MOV_B32 15360130    %2:sreg_32 = S_MOV_B32 1006632960131    %3:sgpr_64 = REG_SEQUENCE killed %2:sreg_32, %subreg.sub0, killed %1:sreg_32, %subreg.sub1132    %4:vgpr_32 = nofpexcept V_PK_ADD_F16 8, %0:vgpr_32, 8, %3.sub1:sgpr_64, 0, 0, 0, 0, 0, implicit $mode, implicit $exec133    S_ENDPGM 0, implicit %4134...135 136---137name:            issue139317_foldable_fp_imm_1138tracksRegLiveness: true139body:             |140  bb.0:141    liveins: $vgpr0142 143    ; CHECK-LABEL: name: issue139317_foldable_fp_imm_1144    ; CHECK: liveins: $vgpr0145    ; CHECK-NEXT: {{  $}}146    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0147    ; CHECK-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 1006632960148    ; CHECK-NEXT: [[S_MOV_B32_1:%[0-9]+]]:sreg_32 = S_MOV_B32 15360149    ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_64 = REG_SEQUENCE killed [[S_MOV_B32_1]], %subreg.sub0, killed [[S_MOV_B32_]], %subreg.sub1150    ; CHECK-NEXT: [[V_PK_ADD_F16_:%[0-9]+]]:vgpr_32 = nofpexcept V_PK_ADD_F16 8, [[COPY]], 4, 15360, 0, 0, 0, 0, 0, implicit $mode, implicit $exec151    ; CHECK-NEXT: S_ENDPGM 0, implicit [[V_PK_ADD_F16_]]152    %0:vgpr_32 = COPY $vgpr0153    %1:sreg_32 = S_MOV_B32 1006632960154    %2:sreg_32 = S_MOV_B32 15360155    %3:sgpr_64 = REG_SEQUENCE killed %2:sreg_32, %subreg.sub0, killed %1:sreg_32, %subreg.sub1156    %4:vgpr_32 = nofpexcept V_PK_ADD_F16 8, %0:vgpr_32, 8, %3.sub1:sgpr_64, 0, 0, 0, 0, 0, implicit $mode, implicit $exec157    S_ENDPGM 0, implicit %4158...159 160---161name:            issue139317_reg_sequence_subreg_use162tracksRegLiveness: true163body:             |164  bb.0:165    liveins: $vgpr0166 167    ; CHECK-LABEL: name: issue139317_reg_sequence_subreg_use168    ; CHECK: liveins: $vgpr0169    ; CHECK-NEXT: {{  $}}170    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0171    ; CHECK-NEXT: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO 4755871576254054400172    ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_64 = REG_SEQUENCE killed [[S_MOV_B]].sub0, %subreg.sub0, [[S_MOV_B]].sub1, %subreg.sub1173    ; CHECK-NEXT: [[V_PK_ADD_F16_:%[0-9]+]]:vgpr_32 = nofpexcept V_PK_ADD_F16 8, [[COPY]], 8, [[REG_SEQUENCE]].sub1, 0, 0, 0, 0, 0, implicit $mode, implicit $exec174    ; CHECK-NEXT: S_ENDPGM 0, implicit [[V_PK_ADD_F16_]]175    %0:vgpr_32 = COPY $vgpr0176    %1:sreg_64 = S_MOV_B64_IMM_PSEUDO 4755871576254054400177    %2:sgpr_64 = REG_SEQUENCE killed %1.sub0, %subreg.sub0, %1.sub1, %subreg.sub1178    %3:vgpr_32 = nofpexcept V_PK_ADD_F16 8, %0:vgpr_32, 8, %2.sub1:sgpr_64, 0, 0, 0, 0, 0, implicit $mode, implicit $exec179    S_ENDPGM 0, implicit %3180...181 182---183name:            issue139317_reg_sequence_subreg_use_foldable_imm184tracksRegLiveness: true185body:             |186  bb.0:187    liveins: $vgpr0188 189    ; CHECK-LABEL: name: issue139317_reg_sequence_subreg_use_foldable_imm190    ; CHECK: liveins: $vgpr0191    ; CHECK-NEXT: {{  $}}192    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0193    ; CHECK-NEXT: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO 65971704299520194    ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_64 = REG_SEQUENCE killed [[S_MOV_B]].sub0, %subreg.sub0, [[S_MOV_B]].sub1, %subreg.sub1195    ; CHECK-NEXT: [[V_PK_ADD_F16_:%[0-9]+]]:vgpr_32 = nofpexcept V_PK_ADD_F16 8, [[COPY]], 8, 15360, 0, 0, 0, 0, 0, implicit $mode, implicit $exec196    ; CHECK-NEXT: S_ENDPGM 0, implicit [[V_PK_ADD_F16_]]197    %0:vgpr_32 = COPY $vgpr0198    %1:sreg_64 = S_MOV_B64_IMM_PSEUDO 65971704299520199    %2:sgpr_64 = REG_SEQUENCE killed %1.sub0, %subreg.sub0, %1.sub1, %subreg.sub1200    %3:vgpr_32 = nofpexcept V_PK_ADD_F16 8, %0:vgpr_32, 8, %2.sub1:sgpr_64, 0, 0, 0, 0, 0, implicit $mode, implicit $exec201    S_ENDPGM 0, implicit %3202...203