brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.5 KiB · 9ab6c28 Raw
296 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=GCN3# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=GCN4# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=-real-true16 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=GCN5 6---7 8name: anyext_sgpr_s16_to_sgpr_s329legalized:       true10regBankSelected: true11body: |12  bb.0:13    liveins: $sgpr014 15    ; GCN-LABEL: name: anyext_sgpr_s16_to_sgpr_s3216    ; GCN: liveins: $sgpr017    ; GCN-NEXT: {{  $}}18    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr019    ; GCN-NEXT: $sgpr0 = COPY [[COPY]]20    %0:sgpr(s32) = COPY $sgpr021    %1:sgpr(s16) = G_TRUNC %022    %2:sgpr(s32) = G_ANYEXT %123    $sgpr0 = COPY %224 25...26 27---28name: anyext_sgpr_s32_to_sgpr_s6429legalized:       true30regBankSelected: true31tracksRegLiveness: true32body:             |33  bb.0:34    liveins: $sgpr035 36    ; GCN-LABEL: name: anyext_sgpr_s32_to_sgpr_s6437    ; GCN: liveins: $sgpr038    ; GCN-NEXT: {{  $}}39    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32_xexec_hi_and_sreg_32_xm0 = COPY $sgpr040    ; GCN-NEXT: [[DEF:%[0-9]+]]:sreg_32_xm0 = IMPLICIT_DEF41    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[DEF]], %subreg.sub142    ; GCN-NEXT: S_ENDPGM 0, implicit [[REG_SEQUENCE]]43    %0:sgpr(s32) = COPY $sgpr044    %1:sgpr(s64) = G_ANYEXT %045    S_ENDPGM 0, implicit %146 47...48 49---50name: anyext_sgpr_s16_to_sgpr_s6451legalized:       true52regBankSelected: true53tracksRegLiveness: true54body:             |55  bb.0:56    liveins: $sgpr057 58    ; GCN-LABEL: name: anyext_sgpr_s16_to_sgpr_s6459    ; GCN: liveins: $sgpr060    ; GCN-NEXT: {{  $}}61    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr062    ; GCN-NEXT: [[DEF:%[0-9]+]]:sreg_32 = IMPLICIT_DEF63    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[DEF]], %subreg.sub164    ; GCN-NEXT: S_ENDPGM 0, implicit [[REG_SEQUENCE]]65    %0:sgpr(s32) = COPY $sgpr066    %1:sgpr(s16) = G_TRUNC %067    %2:sgpr(s64) = G_ANYEXT %168    S_ENDPGM 0, implicit %269 70...71 72---73name: anyext_vgpr_s32_to_vgpr_s6474legalized:       true75regBankSelected: true76tracksRegLiveness: true77body:             |78  bb.0:79    liveins: $vgpr080 81    ; GCN-LABEL: name: anyext_vgpr_s32_to_vgpr_s6482    ; GCN: liveins: $vgpr083    ; GCN-NEXT: {{  $}}84    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr085    ; GCN-NEXT: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF86    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[DEF]], %subreg.sub187    ; GCN-NEXT: S_ENDPGM 0, implicit [[REG_SEQUENCE]]88    %0:vgpr(s32) = COPY $vgpr089    %1:vgpr(s64) = G_ANYEXT %090    S_ENDPGM 0, implicit %191 92...93 94---95name: anyext_vgpr_s16_to_vgpr_s6496legalized:       true97regBankSelected: true98tracksRegLiveness: true99body:             |100  bb.0:101    liveins: $vgpr0102 103    %0:vgpr(s32) = COPY $vgpr0104    %1:vgpr(s16) = G_TRUNC %0105    %2:vgpr(s64) = G_ANYEXT %1106    S_ENDPGM 0, implicit %2107 108...109 110# vcc is an invalid extension source111# ---112 113# name: anyext_vcc_s1_to_vgpr_s32114# legalized:       true115# regBankSelected: true116# body: |117#   bb.0:118#     liveins: $vgpr0119 120#     %0:vgpr(s32) = COPY $vgpr0121#     %1:vcc(s1) = G_ICMP intpred(eq), %0, %0122#     %2:vgpr(s32) = G_ANYEXT %1123#     $vgpr0 = COPY %2124# ...125 126---127 128name: anyext_sgpr_s1_to_sgpr_s16129legalized:       true130regBankSelected: true131body: |132  bb.0:133    liveins: $sgpr0134 135    ; GCN-LABEL: name: anyext_sgpr_s1_to_sgpr_s16136    ; GCN: liveins: $sgpr0137    ; GCN-NEXT: {{  $}}138    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0139    ; GCN-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 65535140    ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 [[S_MOV_B32_]], [[COPY]], implicit-def dead $scc141    ; GCN-NEXT: $sgpr0 = COPY [[S_AND_B32_]]142    %0:sgpr(s32) = COPY $sgpr0143    %1:sgpr(s1) = G_TRUNC %0144    %2:sgpr(s16) = G_ANYEXT %1145    %3:sgpr(s32) = G_ZEXT %2146    $sgpr0 = COPY %3147...148 149---150 151name: anyext_sgpr_s1_to_sgpr_s32152legalized:       true153regBankSelected: true154body: |155  bb.0:156    liveins: $sgpr0157 158    ; GCN-LABEL: name: anyext_sgpr_s1_to_sgpr_s32159    ; GCN: liveins: $sgpr0160    ; GCN-NEXT: {{  $}}161    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0162    ; GCN-NEXT: $sgpr0 = COPY [[COPY]]163    %0:sgpr(s32) = COPY $sgpr0164    %1:sgpr(s1) = G_TRUNC %0165    %2:sgpr(s32) = G_ANYEXT %1166    $sgpr0 = COPY %2167...168 169---170 171name: anyext_sgpr_s1_to_sgpr_s64172legalized:       true173regBankSelected: true174body: |175  bb.0:176    liveins: $sgpr0177 178    ; GCN-LABEL: name: anyext_sgpr_s1_to_sgpr_s64179    ; GCN: liveins: $sgpr0180    ; GCN-NEXT: {{  $}}181    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0182    ; GCN-NEXT: [[DEF:%[0-9]+]]:sreg_32 = IMPLICIT_DEF183    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[DEF]], %subreg.sub1184    ; GCN-NEXT: $sgpr0_sgpr1 = COPY [[REG_SEQUENCE]]185    %0:sgpr(s32) = COPY $sgpr0186    %1:sgpr(s1) = G_TRUNC %0187    %2:sgpr(s64) = G_ANYEXT %1188    $sgpr0_sgpr1 = COPY %2189...190 191---192 193name: anyext_vgpr_s1_to_vgpr_s16194legalized:       true195regBankSelected: true196body: |197  bb.0:198    liveins: $vgpr0199 200    ; GCN-LABEL: name: anyext_vgpr_s1_to_vgpr_s16201    ; GCN: liveins: $vgpr0202    ; GCN-NEXT: {{  $}}203    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0204    ; GCN-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 65535205    ; GCN-NEXT: [[V_AND_B32_e64_:%[0-9]+]]:vgpr_32 = V_AND_B32_e64 [[S_MOV_B32_]], [[COPY]], implicit $exec206    ; GCN-NEXT: $vgpr0 = COPY [[V_AND_B32_e64_]]207    %0:vgpr(s32) = COPY $vgpr0208    %1:vgpr(s1) = G_TRUNC %0209    %2:vgpr(s16) = G_ANYEXT %1210    %3:vgpr(s32) = G_ZEXT %2211    $vgpr0 = COPY %3212...213 214---215 216name: anyext_vgpr_s1_to_vgpr_s32217legalized:       true218regBankSelected: true219body: |220  bb.0:221    liveins: $vgpr0222 223    ; GCN-LABEL: name: anyext_vgpr_s1_to_vgpr_s32224    ; GCN: liveins: $vgpr0225    ; GCN-NEXT: {{  $}}226    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0227    ; GCN-NEXT: $vgpr0 = COPY [[COPY]]228    %0:vgpr(s32) = COPY $vgpr0229    %1:vgpr(s1) = G_TRUNC %0230    %2:vgpr(s32) = G_ANYEXT %1231    $vgpr0 = COPY %2232...233 234---235 236name: anyext_sgpr_s1_to_vgpr_s32237legalized:       true238regBankSelected: true239body: |240  bb.0:241    liveins: $sgpr0242 243    ; GCN-LABEL: name: anyext_sgpr_s1_to_vgpr_s32244    ; GCN: liveins: $sgpr0245    ; GCN-NEXT: {{  $}}246    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0247    ; GCN-NEXT: $sgpr0 = COPY [[COPY]]248    %0:sgpr(s32) = COPY $sgpr0249    %1:sgpr(s1) = G_TRUNC %0250    %2:sgpr(s32) = G_ANYEXT %1251    $sgpr0 = COPY %2252...253 254---255 256name: anyext_vgpr_s16_to_vgpr_s32257legalized:       true258regBankSelected: true259body: |260  bb.0:261    liveins: $vgpr0262 263    ; GCN-LABEL: name: anyext_vgpr_s16_to_vgpr_s32264    ; GCN: liveins: $vgpr0265    ; GCN-NEXT: {{  $}}266    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0267    ; GCN-NEXT: $vgpr0 = COPY [[COPY]]268    %0:vgpr(s32) = COPY $vgpr0269    %1:vgpr(s16) = G_TRUNC %0270    %2:vgpr(s32) = G_ANYEXT %1271    $vgpr0 = COPY %2272 273...274 275# The source register already has an assigned register class that276# should not be interpreted as vcc.277---278 279name: anyext_regclass_sgpr_s1_to_sgpr_s32280legalized:       true281regBankSelected: true282body: |283  bb.0:284    liveins: $sgpr0285 286    ; GCN-LABEL: name: anyext_regclass_sgpr_s1_to_sgpr_s32287    ; GCN: liveins: $sgpr0288    ; GCN-NEXT: {{  $}}289    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0290    ; GCN-NEXT: $sgpr0 = COPY [[COPY]]291    %0:sgpr(s32) = COPY $sgpr0292    %1:sreg_32(s1) = G_TRUNC %0293    %2:sgpr(s32) = G_ANYEXT %1294    $sgpr0 = COPY %2295...296