brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.7 KiB · 50394b6 Raw
165 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -O0 -mtriple=aarch64 -run-pass=legalizer -global-isel-abort=1 %s -o - | FileCheck %s3---4name:            fpext_v4s64_v4s325tracksRegLiveness: true6liveins:7  - { reg: '$q0' }8  - { reg: '$x0' }9frameInfo:10  maxAlignment:    111body:             |12  bb.1:13    liveins: $q0, $x014 15    ; CHECK-LABEL: name: fpext_v4s64_v4s3216    ; CHECK: liveins: $q0, $x017    ; CHECK-NEXT: {{  $}}18    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q019    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x020    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(<2 x s32>), [[UV1:%[0-9]+]]:_(<2 x s32>) = G_UNMERGE_VALUES [[COPY]](<4 x s32>)21    ; CHECK-NEXT: [[FPEXT:%[0-9]+]]:_(<2 x s64>) = G_FPEXT [[UV]](<2 x s32>)22    ; CHECK-NEXT: [[FPEXT1:%[0-9]+]]:_(<2 x s64>) = G_FPEXT [[UV1]](<2 x s32>)23    ; CHECK-NEXT: G_STORE [[FPEXT]](<2 x s64>), [[COPY1]](p0) :: (store (<2 x s64>), align 32)24    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1625    ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY1]], [[C]](s64)26    ; CHECK-NEXT: G_STORE [[FPEXT1]](<2 x s64>), [[PTR_ADD]](p0) :: (store (<2 x s64>) into unknown-address + 16)27    ; CHECK-NEXT: RET_ReallyLR28    %0:_(<4 x s32>) = COPY $q029    %1:_(p0) = COPY $x030    %2:_(<4 x s64>) = G_FPEXT %0(<4 x s32>)31    G_STORE %2(<4 x s64>), %1(p0) :: (store (<4 x s64>))32    RET_ReallyLR33 34...35 36---37name:            fpext_f16_f6438body:             |39  bb.0:40    liveins: $h041    ; CHECK-LABEL: name: fpext_f16_f6442    ; CHECK: liveins: $h043    ; CHECK-NEXT: {{  $}}44    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $h045    ; CHECK-NEXT: [[FPEXT:%[0-9]+]]:_(s64) = G_FPEXT [[COPY]](s16)46    ; CHECK-NEXT: $d0 = COPY [[FPEXT]](s64)47    ; CHECK-NEXT: RET_ReallyLR implicit $d048    %0:_(s16) = COPY $h049    %1:_(s64) = G_FPEXT %0(s16)50    $d0 = COPY %1(s64)51    RET_ReallyLR implicit $d052...53 54---55name:            fpext_v2f16_v2f6456body:             |57  bb.0:58    liveins: $d059 60    ; CHECK-LABEL: name: fpext_v2f16_v2f6461    ; CHECK: liveins: $d062    ; CHECK-NEXT: {{  $}}63    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d064    ; CHECK-NEXT: [[FPEXT:%[0-9]+]]:_(<4 x s32>) = G_FPEXT [[COPY]](<4 x s16>)65    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(<2 x s32>), [[UV1:%[0-9]+]]:_(<2 x s32>) = G_UNMERGE_VALUES [[FPEXT]](<4 x s32>)66    ; CHECK-NEXT: [[FPEXT1:%[0-9]+]]:_(<2 x s64>) = G_FPEXT [[UV]](<2 x s32>)67    ; CHECK-NEXT: $q0 = COPY [[FPEXT1]](<2 x s64>)68    ; CHECK-NEXT: RET_ReallyLR implicit $q069    %1:_(<4 x s16>) = COPY $d070    %0:_(<2 x s16>), %2:_(<2 x s16>) = G_UNMERGE_VALUES %1(<4 x s16>)71    %3:_(<2 x s64>) = G_FPEXT %0(<2 x s16>)72    $q0 = COPY %3(<2 x s64>)73    RET_ReallyLR implicit $q074...75 76---77name:            fpext_v3f16_v3f6478body:             |79  bb.0:80    liveins: $d081 82    ; CHECK-LABEL: name: fpext_v3f16_v3f6483    ; CHECK: liveins: $d084    ; CHECK-NEXT: {{  $}}85    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d086    ; CHECK-NEXT: [[FPEXT:%[0-9]+]]:_(<4 x s32>) = G_FPEXT [[COPY]](<4 x s16>)87    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(<2 x s32>), [[UV1:%[0-9]+]]:_(<2 x s32>) = G_UNMERGE_VALUES [[FPEXT]](<4 x s32>)88    ; CHECK-NEXT: [[FPEXT1:%[0-9]+]]:_(<2 x s64>) = G_FPEXT [[UV]](<2 x s32>)89    ; CHECK-NEXT: [[FPEXT2:%[0-9]+]]:_(<2 x s64>) = G_FPEXT [[UV1]](<2 x s32>)90    ; CHECK-NEXT: [[UV2:%[0-9]+]]:_(s64), [[UV3:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[FPEXT1]](<2 x s64>)91    ; CHECK-NEXT: [[UV4:%[0-9]+]]:_(s64), [[UV5:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[FPEXT2]](<2 x s64>)92    ; CHECK-NEXT: $d0 = COPY [[UV2]](s64)93    ; CHECK-NEXT: $d1 = COPY [[UV3]](s64)94    ; CHECK-NEXT: $d2 = COPY [[UV4]](s64)95    ; CHECK-NEXT: RET_ReallyLR implicit $d0, implicit $d1, implicit $d296    %1:_(<4 x s16>) = COPY $d097    %2:_(s16), %3:_(s16), %4:_(s16), %5:_(s16) = G_UNMERGE_VALUES %1(<4 x s16>)98    %0:_(<3 x s16>) = G_BUILD_VECTOR %2(s16), %3(s16), %4(s16)99    %6:_(<3 x s64>) = G_FPEXT %0(<3 x s16>)100    %7:_(s64), %8:_(s64), %9:_(s64) = G_UNMERGE_VALUES %6(<3 x s64>)101    $d0 = COPY %7(s64)102    $d1 = COPY %8(s64)103    $d2 = COPY %9(s64)104    RET_ReallyLR implicit $d0, implicit $d1, implicit $d2105...106 107---108name:            fpext_v4f16_v4f64109body:             |110  bb.0:111    liveins: $d0112 113    ; CHECK-LABEL: name: fpext_v4f16_v4f64114    ; CHECK: liveins: $d0115    ; CHECK-NEXT: {{  $}}116    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d0117    ; CHECK-NEXT: [[FPEXT:%[0-9]+]]:_(<4 x s32>) = G_FPEXT [[COPY]](<4 x s16>)118    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(<2 x s32>), [[UV1:%[0-9]+]]:_(<2 x s32>) = G_UNMERGE_VALUES [[FPEXT]](<4 x s32>)119    ; CHECK-NEXT: [[FPEXT1:%[0-9]+]]:_(<2 x s64>) = G_FPEXT [[UV]](<2 x s32>)120    ; CHECK-NEXT: [[FPEXT2:%[0-9]+]]:_(<2 x s64>) = G_FPEXT [[UV1]](<2 x s32>)121    ; CHECK-NEXT: $q0 = COPY [[FPEXT1]](<2 x s64>)122    ; CHECK-NEXT: $q1 = COPY [[FPEXT2]](<2 x s64>)123    ; CHECK-NEXT: RET_ReallyLR implicit $q0, implicit $q1124    %0:_(<4 x s16>) = COPY $d0125    %1:_(<4 x s64>) = G_FPEXT %0(<4 x s16>)126    %2:_(<2 x s64>), %3:_(<2 x s64>) = G_UNMERGE_VALUES %1(<4 x s64>)127    $q0 = COPY %2(<2 x s64>)128    $q1 = COPY %3(<2 x s64>)129    RET_ReallyLR implicit $q0, implicit $q1130...131 132---133name:            fpext_v8f16_v8f64134body:             |135  bb.0:136    liveins: $q0137 138    ; CHECK-LABEL: name: fpext_v8f16_v8f64139    ; CHECK: liveins: $q0140    ; CHECK-NEXT: {{  $}}141    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q0142    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(<4 x s16>), [[UV1:%[0-9]+]]:_(<4 x s16>) = G_UNMERGE_VALUES [[COPY]](<8 x s16>)143    ; CHECK-NEXT: [[FPEXT:%[0-9]+]]:_(<4 x s32>) = G_FPEXT [[UV]](<4 x s16>)144    ; CHECK-NEXT: [[FPEXT1:%[0-9]+]]:_(<4 x s32>) = G_FPEXT [[UV1]](<4 x s16>)145    ; CHECK-NEXT: [[UV2:%[0-9]+]]:_(<2 x s32>), [[UV3:%[0-9]+]]:_(<2 x s32>) = G_UNMERGE_VALUES [[FPEXT]](<4 x s32>)146    ; CHECK-NEXT: [[UV4:%[0-9]+]]:_(<2 x s32>), [[UV5:%[0-9]+]]:_(<2 x s32>) = G_UNMERGE_VALUES [[FPEXT1]](<4 x s32>)147    ; CHECK-NEXT: [[FPEXT2:%[0-9]+]]:_(<2 x s64>) = G_FPEXT [[UV2]](<2 x s32>)148    ; CHECK-NEXT: [[FPEXT3:%[0-9]+]]:_(<2 x s64>) = G_FPEXT [[UV3]](<2 x s32>)149    ; CHECK-NEXT: [[FPEXT4:%[0-9]+]]:_(<2 x s64>) = G_FPEXT [[UV4]](<2 x s32>)150    ; CHECK-NEXT: [[FPEXT5:%[0-9]+]]:_(<2 x s64>) = G_FPEXT [[UV5]](<2 x s32>)151    ; CHECK-NEXT: $q0 = COPY [[FPEXT2]](<2 x s64>)152    ; CHECK-NEXT: $q1 = COPY [[FPEXT3]](<2 x s64>)153    ; CHECK-NEXT: $q2 = COPY [[FPEXT4]](<2 x s64>)154    ; CHECK-NEXT: $q3 = COPY [[FPEXT5]](<2 x s64>)155    ; CHECK-NEXT: RET_ReallyLR implicit $q0, implicit $q1, implicit $q2, implicit $q3156    %0:_(<8 x s16>) = COPY $q0157    %1:_(<8 x s64>) = G_FPEXT %0(<8 x s16>)158    %2:_(<2 x s64>), %3:_(<2 x s64>), %4:_(<2 x s64>), %5:_(<2 x s64>) = G_UNMERGE_VALUES %1(<8 x s64>)159    $q0 = COPY %2(<2 x s64>)160    $q1 = COPY %3(<2 x s64>)161    $q2 = COPY %4(<2 x s64>)162    $q3 = COPY %5(<2 x s64>)163    RET_ReallyLR implicit $q0, implicit $q1, implicit $q2, implicit $q3164...165