brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.8 KiB · 5f98dae Raw
381 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=aarch64-linux-gnu -run-pass=legalizer -verify-machineinstrs %s -o - | FileCheck %s3 4 5---6name:            test_extracts_47tracksRegLiveness: true8body: |9  bb.0:10    liveins: $x0, $x1, $x211 12 13    ; CHECK-LABEL: name: test_extracts_414    ; CHECK: liveins: $x0, $x1, $x215    ; CHECK-NEXT: {{  $}}16    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x017    ; CHECK-NEXT: [[EXTRACT:%[0-9]+]]:_(s32) = G_EXTRACT [[COPY]](s64), 3218    ; CHECK-NEXT: $w0 = COPY [[EXTRACT]](s32)19    ; CHECK-NEXT: RET_ReallyLR implicit $w020    %0:_(s64) = COPY $x021    %1:_(s64) = COPY $x122    %2:_(s128) = G_MERGE_VALUES %0, %123    %3:_(s32) = G_EXTRACT %2, 3224    $w0 = COPY %325    RET_ReallyLR implicit $w026...27---28name:            p0_from_s12829tracksRegLiveness: true30body: |31  bb.0:32    liveins: $x0, $q033    ; CHECK-LABEL: name: p0_from_s12834    ; CHECK: liveins: $x0, $q035    ; CHECK-NEXT: {{  $}}36    ; CHECK-NEXT: %val:_(s128) = COPY $q037    ; CHECK-NEXT: %extract:_(p0) = G_EXTRACT %val(s128), 038    ; CHECK-NEXT: $x0 = COPY %extract(p0)39    ; CHECK-NEXT: RET_ReallyLR implicit $x040    %val:_(s128) = COPY $q041    %extract:_(p0) = G_EXTRACT %val, 042    $x0 = COPY %extract43    RET_ReallyLR implicit $x044...45---46name:            s64_from_s12847tracksRegLiveness: true48body: |49  bb.0:50    liveins: $x0, $q051    ; CHECK-LABEL: name: s64_from_s12852    ; CHECK: liveins: $x0, $q053    ; CHECK-NEXT: {{  $}}54    ; CHECK-NEXT: %val:_(s128) = COPY $q055    ; CHECK-NEXT: %extract:_(s64) = G_EXTRACT %val(s128), 056    ; CHECK-NEXT: $x0 = COPY %extract(s64)57    ; CHECK-NEXT: RET_ReallyLR implicit $x058    %val:_(s128) = COPY $q059    %extract:_(s64) = G_EXTRACT %val, 060    $x0 = COPY %extract61    RET_ReallyLR implicit $x062...63---64name:            s32_from_s12865tracksRegLiveness: true66body: |67  bb.0:68    liveins: $w0, $q069    ; CHECK-LABEL: name: s32_from_s12870    ; CHECK: liveins: $w0, $q071    ; CHECK-NEXT: {{  $}}72    ; CHECK-NEXT: %val:_(s128) = COPY $q073    ; CHECK-NEXT: %extract:_(s32) = G_EXTRACT %val(s128), 074    ; CHECK-NEXT: $w0 = COPY %extract(s32)75    ; CHECK-NEXT: RET_ReallyLR implicit $w076    %val:_(s128) = COPY $q077    %extract:_(s32) = G_EXTRACT %val, 078    $w0 = COPY %extract79    RET_ReallyLR implicit $w080...81---82name:            s32_from_s6483tracksRegLiveness: true84body: |85  bb.0:86    liveins: $w087    ; CHECK-LABEL: name: s32_from_s6488    ; CHECK: liveins: $w089    ; CHECK-NEXT: {{  $}}90    ; CHECK-NEXT: %val:_(s64) = COPY $x091    ; CHECK-NEXT: %extract:_(s32) = G_EXTRACT %val(s64), 092    ; CHECK-NEXT: $w0 = COPY %extract(s32)93    ; CHECK-NEXT: RET_ReallyLR implicit $w094    %val:_(s64) = COPY $x095    %extract:_(s32) = G_EXTRACT %val, 096    $w0 = COPY %extract97    RET_ReallyLR implicit $w098...99---100name:            s32_from_p0101tracksRegLiveness: true102body: |103  bb.0:104    liveins: $w0105    ; CHECK-LABEL: name: s32_from_p0106    ; CHECK: liveins: $w0107    ; CHECK-NEXT: {{  $}}108    ; CHECK-NEXT: %val:_(p0) = COPY $x0109    ; CHECK-NEXT: %extract:_(s32) = G_EXTRACT %val(p0), 0110    ; CHECK-NEXT: $w0 = COPY %extract(s32)111    ; CHECK-NEXT: RET_ReallyLR implicit $w0112    %val:_(p0) = COPY $x0113    %extract:_(s32) = G_EXTRACT %val, 0114    $w0 = COPY %extract115    RET_ReallyLR implicit $w0116...117---118name:            s16_from_s128119tracksRegLiveness: true120body: |121  bb.0:122    liveins: $h0, $q0123    ; CHECK-LABEL: name: s16_from_s128124    ; CHECK: liveins: $h0, $q0125    ; CHECK-NEXT: {{  $}}126    ; CHECK-NEXT: %val:_(s128) = COPY $q0127    ; CHECK-NEXT: %extract:_(s16) = G_EXTRACT %val(s128), 0128    ; CHECK-NEXT: $h0 = COPY %extract(s16)129    ; CHECK-NEXT: RET_ReallyLR implicit $h0130    %val:_(s128) = COPY $q0131    %extract:_(s16) = G_EXTRACT %val, 0132    $h0 = COPY %extract133    RET_ReallyLR implicit $h0134...135---136name:            s16_from_s64137tracksRegLiveness: true138body: |139  bb.0:140    liveins: $h0, $x0141    ; CHECK-LABEL: name: s16_from_s64142    ; CHECK: liveins: $h0, $x0143    ; CHECK-NEXT: {{  $}}144    ; CHECK-NEXT: %val:_(s64) = COPY $x0145    ; CHECK-NEXT: %extract:_(s16) = G_EXTRACT %val(s64), 0146    ; CHECK-NEXT: $h0 = COPY %extract(s16)147    ; CHECK-NEXT: RET_ReallyLR implicit $h0148    %val:_(s64) = COPY $x0149    %extract:_(s16) = G_EXTRACT %val, 0150    $h0 = COPY %extract151    RET_ReallyLR implicit $h0152...153---154name:            s16_from_s32155tracksRegLiveness: true156body: |157  bb.0:158    liveins: $h0, $w0159    ; CHECK-LABEL: name: s16_from_s32160    ; CHECK: liveins: $h0, $w0161    ; CHECK-NEXT: {{  $}}162    ; CHECK-NEXT: %val:_(s32) = COPY $w0163    ; CHECK-NEXT: %extract:_(s16) = G_EXTRACT %val(s32), 0164    ; CHECK-NEXT: $h0 = COPY %extract(s16)165    ; CHECK-NEXT: RET_ReallyLR implicit $h0166    %val:_(s32) = COPY $w0167    %extract:_(s16) = G_EXTRACT %val, 0168    $h0 = COPY %extract169    RET_ReallyLR implicit $h0170...171---172name:            s8_from_s128173tracksRegLiveness: true174body: |175  bb.0:176    liveins: $b0, $q0177    ; CHECK-LABEL: name: s8_from_s128178    ; CHECK: liveins: $b0, $q0179    ; CHECK-NEXT: {{  $}}180    ; CHECK-NEXT: %val:_(s128) = COPY $q0181    ; CHECK-NEXT: %extract:_(s8) = G_TRUNC %val(s128)182    ; CHECK-NEXT: $b0 = COPY %extract(s8)183    ; CHECK-NEXT: RET_ReallyLR implicit $b0184    %val:_(s128) = COPY $q0185    %extract:_(s8) = G_EXTRACT %val, 0186    $b0 = COPY %extract187    RET_ReallyLR implicit $b0188...189---190name:            s8_from_s64191tracksRegLiveness: true192body: |193  bb.0:194    liveins: $b0, $x0195    ; CHECK-LABEL: name: s8_from_s64196    ; CHECK: liveins: $b0, $x0197    ; CHECK-NEXT: {{  $}}198    ; CHECK-NEXT: %val:_(s64) = COPY $x0199    ; CHECK-NEXT: %extract:_(s8) = G_TRUNC %val(s64)200    ; CHECK-NEXT: $b0 = COPY %extract(s8)201    ; CHECK-NEXT: RET_ReallyLR implicit $b0202    %val:_(s64) = COPY $x0203    %extract:_(s8) = G_EXTRACT %val, 0204    $b0 = COPY %extract205    RET_ReallyLR implicit $b0206...207---208name:            s8_from_s32209tracksRegLiveness: true210body: |211  bb.0:212    liveins: $b0, $w0213    ; CHECK-LABEL: name: s8_from_s32214    ; CHECK: liveins: $b0, $w0215    ; CHECK-NEXT: {{  $}}216    ; CHECK-NEXT: %val:_(s32) = COPY $w0217    ; CHECK-NEXT: %extract:_(s8) = G_TRUNC %val(s32)218    ; CHECK-NEXT: $b0 = COPY %extract(s8)219    ; CHECK-NEXT: RET_ReallyLR implicit $b0220    %val:_(s32) = COPY $w0221    %extract:_(s8) = G_EXTRACT %val, 0222    $b0 = COPY %extract223    RET_ReallyLR implicit $b0224...225---226name:            s8_from_s16227tracksRegLiveness: true228body: |229  bb.0:230    liveins: $b0, $h0231    ; CHECK-LABEL: name: s8_from_s16232    ; CHECK: liveins: $b0, $h0233    ; CHECK-NEXT: {{  $}}234    ; CHECK-NEXT: %val:_(s16) = COPY $h0235    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT %val(s16)236    ; CHECK-NEXT: %extract:_(s8) = G_TRUNC [[ANYEXT]](s32)237    ; CHECK-NEXT: $b0 = COPY %extract(s8)238    ; CHECK-NEXT: RET_ReallyLR implicit $b0239    %val:_(s16) = COPY $h0240    %extract:_(s8) = G_EXTRACT %val, 0241    $b0 = COPY %extract242    RET_ReallyLR implicit $b0243...244---245name:            s1_from_s32246tracksRegLiveness: true247body: |248  bb.0:249    liveins: $w0250    ; CHECK-LABEL: name: s1_from_s32251    ; CHECK: liveins: $w0252    ; CHECK-NEXT: {{  $}}253    ; CHECK-NEXT: %val:_(s32) = COPY $w0254    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1255    ; CHECK-NEXT: %ext:_(s32) = G_AND %val, [[C]]256    ; CHECK-NEXT: $w0 = COPY %ext(s32)257    ; CHECK-NEXT: RET_ReallyLR implicit $w0258    %val:_(s32) = COPY $w0259    %extract:_(s1) = G_EXTRACT %val, 0260    %ext:_(s32) = G_ZEXT %extract261    $w0 = COPY %ext262    RET_ReallyLR implicit $w0263...264---265name:            s3_from_s32266tracksRegLiveness: true267body: |268  bb.0:269    liveins: $w0270    ; CHECK-LABEL: name: s3_from_s32271    ; CHECK: liveins: $w0272    ; CHECK-NEXT: {{  $}}273    ; CHECK-NEXT: %val:_(s32) = COPY $w0274    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 7275    ; CHECK-NEXT: %ext:_(s32) = G_AND %val, [[C]]276    ; CHECK-NEXT: $w0 = COPY %ext(s32)277    ; CHECK-NEXT: RET_ReallyLR implicit $w0278    %val:_(s32) = COPY $w0279    %extract:_(s3) = G_EXTRACT %val, 0280    %ext:_(s32) = G_ZEXT %extract281    $w0 = COPY %ext282    RET_ReallyLR implicit $w0283...284---285name:            s3_from_s35286tracksRegLiveness: true287body: |288  bb.0:289    liveins: $w0290    ; CHECK-LABEL: name: s3_from_s35291    ; CHECK: liveins: $w0292    ; CHECK-NEXT: {{  $}}293    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0294    ; CHECK-NEXT: $w0 = COPY [[C]](s32)295    ; CHECK-NEXT: RET_ReallyLR implicit $w0296    %val:_(s35) = G_IMPLICIT_DEF297    %extract:_(s3) = G_EXTRACT %val, 0298    %ext:_(s32) = G_ZEXT %extract299    $w0 = COPY %ext300    RET_ReallyLR implicit $w0301...302---303name:            s4_from_s32304tracksRegLiveness: true305body: |306  bb.0:307    liveins: $w0308    ; CHECK-LABEL: name: s4_from_s32309    ; CHECK: liveins: $w0310    ; CHECK-NEXT: {{  $}}311    ; CHECK-NEXT: %val:_(s32) = COPY $w0312    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 15313    ; CHECK-NEXT: %ext:_(s32) = G_AND %val, [[C]]314    ; CHECK-NEXT: $w0 = COPY %ext(s32)315    ; CHECK-NEXT: RET_ReallyLR implicit $w0316    %val:_(s32) = COPY $w0317    %extract:_(s4) = G_EXTRACT %val, 0318    %ext:_(s32) = G_ZEXT %extract319    $w0 = COPY %ext320    RET_ReallyLR implicit $w0321...322---323name:            s64_from_s264324tracksRegLiveness: true325body: |326  bb.0:327    liveins: $x0328    ; CHECK-LABEL: name: s64_from_s264329    ; CHECK: liveins: $x0330    ; CHECK-NEXT: {{  $}}331    ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s64) = G_IMPLICIT_DEF332    ; CHECK-NEXT: %extract:_(s64) = COPY [[DEF]](s64)333    ; CHECK-NEXT: $x0 = COPY %extract(s64)334    ; CHECK-NEXT: RET_ReallyLR implicit $x0335    %val:_(s264) = G_IMPLICIT_DEF336    %extract:_(s64) = G_EXTRACT %val, 0337    $x0 = COPY %extract338    RET_ReallyLR implicit $x0339...340---341name:            s16_from_s144342tracksRegLiveness: true343body: |344  bb.0:345    liveins: $h0346    ; CHECK-LABEL: name: s16_from_s144347    ; CHECK: liveins: $h0348    ; CHECK-NEXT: {{  $}}349    ; CHECK-NEXT: %h0:_(s16) = COPY $h0350    ; CHECK-NEXT: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES %h0(s16), %h0(s16), %h0(s16), %h0(s16)351    ; CHECK-NEXT: [[EXTRACT:%[0-9]+]]:_(s16) = G_EXTRACT [[MV]](s64), 1352    ; CHECK-NEXT: %extract:_(s16) = COPY [[EXTRACT]](s16)353    ; CHECK-NEXT: $h0 = COPY %extract(s16)354    ; CHECK-NEXT: RET_ReallyLR implicit $h0355    %h0:_(s16) = COPY $h0356    %val:_(s144) = G_MERGE_VALUES %h0, %h0, %h0, %h0, %h0, %h0, %h0, %h0, %h0357    %extract:_(s16) = G_EXTRACT %val, 1358    $h0 = COPY %extract359    RET_ReallyLR implicit $h0360...361---362name:            s32_from_s144363tracksRegLiveness: true364body: |365  bb.0:366    liveins: $h0, $w0367    ; CHECK-LABEL: name: s32_from_s144368    ; CHECK: liveins: $h0, $w0369    ; CHECK-NEXT: {{  $}}370    ; CHECK-NEXT: %h0:_(s16) = COPY $h0371    ; CHECK-NEXT: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES %h0(s16), %h0(s16), %h0(s16), %h0(s16)372    ; CHECK-NEXT: [[EXTRACT:%[0-9]+]]:_(s32) = G_EXTRACT [[MV]](s64), 1373    ; CHECK-NEXT: %extract:_(s32) = COPY [[EXTRACT]](s32)374    ; CHECK-NEXT: $w0 = COPY %extract(s32)375    ; CHECK-NEXT: RET_ReallyLR implicit $w0376    %h0:_(s16) = COPY $h0377    %val:_(s144) = G_MERGE_VALUES %h0, %h0, %h0, %h0, %h0, %h0, %h0, %h0, %h0378    %extract:_(s32) = G_EXTRACT %val, 1379    $w0 = COPY %extract380    RET_ReallyLR implicit $w0381