152 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -verify-machineinstrs -mtriple aarch64-unknown-unknown -run-pass=legalizer -O0 -global-isel %s -o - | FileCheck %s3---4name: fptrunc_s16_s325body: |6 bb.0:7 liveins: $s08 9 ; CHECK-LABEL: name: fptrunc_s16_s3210 ; CHECK: liveins: $s011 ; CHECK-NEXT: {{ $}}12 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $s013 ; CHECK-NEXT: [[FPTRUNC:%[0-9]+]]:_(s16) = G_FPTRUNC [[COPY]](s32)14 ; CHECK-NEXT: $h0 = COPY [[FPTRUNC]](s16)15 ; CHECK-NEXT: RET_ReallyLR implicit $h016 %0:_(s32) = COPY $s017 %1:_(s16) = G_FPTRUNC %018 $h0 = COPY %1(s16)19 RET_ReallyLR implicit $h020...21---22name: fptrunc_s16_s6423body: |24 bb.0:25 liveins: $d026 27 ; CHECK-LABEL: name: fptrunc_s16_s6428 ; CHECK: liveins: $d029 ; CHECK-NEXT: {{ $}}30 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $d031 ; CHECK-NEXT: [[FPTRUNC:%[0-9]+]]:_(s16) = G_FPTRUNC [[COPY]](s64)32 ; CHECK-NEXT: $h0 = COPY [[FPTRUNC]](s16)33 ; CHECK-NEXT: RET_ReallyLR implicit $h034 %0:_(s64) = COPY $d035 %1:_(s16) = G_FPTRUNC %036 $h0 = COPY %1(s16)37 RET_ReallyLR implicit $h038...39---40name: fptrunc_s32_s6441body: |42 bb.0:43 liveins: $d044 45 ; CHECK-LABEL: name: fptrunc_s32_s6446 ; CHECK: liveins: $d047 ; CHECK-NEXT: {{ $}}48 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $d049 ; CHECK-NEXT: [[FPTRUNC:%[0-9]+]]:_(s32) = G_FPTRUNC [[COPY]](s64)50 ; CHECK-NEXT: $s0 = COPY [[FPTRUNC]](s32)51 ; CHECK-NEXT: RET_ReallyLR implicit $s052 %0:_(s64) = COPY $d053 %1:_(s32) = G_FPTRUNC %054 $s0 = COPY %1(s32)55 RET_ReallyLR implicit $s056...57---58name: fptrunc_v4s16_v4s3259body: |60 bb.0:61 liveins: $q062 63 ; CHECK-LABEL: name: fptrunc_v4s16_v4s3264 ; CHECK: liveins: $q065 ; CHECK-NEXT: {{ $}}66 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q067 ; CHECK-NEXT: [[FPTRUNC:%[0-9]+]]:_(<4 x s16>) = G_FPTRUNC [[COPY]](<4 x s32>)68 ; CHECK-NEXT: $d0 = COPY [[FPTRUNC]](<4 x s16>)69 ; CHECK-NEXT: RET_ReallyLR implicit $d070 %0:_(<4 x s32>) = COPY $q071 %1:_(<4 x s16>) = G_FPTRUNC %072 $d0 = COPY %1(<4 x s16>)73 RET_ReallyLR implicit $d074...75---76name: fptrunc_v2s16_v2s3277body: |78 bb.0:79 liveins: $d080 81 ; CHECK-LABEL: name: fptrunc_v2s16_v2s3282 ; CHECK: liveins: $d083 ; CHECK-NEXT: {{ $}}84 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d085 ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>)86 ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF87 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[UV]](s32), [[UV1]](s32), [[DEF]](s32), [[DEF]](s32)88 ; CHECK-NEXT: [[FPTRUNC:%[0-9]+]]:_(<4 x s16>) = G_FPTRUNC [[BUILD_VECTOR]](<4 x s32>)89 ; CHECK-NEXT: [[UV2:%[0-9]+]]:_(<2 x s16>), [[UV3:%[0-9]+]]:_(<2 x s16>) = G_UNMERGE_VALUES [[FPTRUNC]](<4 x s16>)90 ; CHECK-NEXT: $s0 = COPY [[UV2]](<2 x s16>)91 ; CHECK-NEXT: RET_ReallyLR implicit $s092 %0:_(<2 x s32>) = COPY $d093 %1:_(<2 x s16>) = G_FPTRUNC %094 $s0 = COPY %1(<2 x s16>)95 RET_ReallyLR implicit $s096...97---98name: fptrunc_v4s32_v4s6499body: |100 bb.0:101 102 ; CHECK-LABEL: name: fptrunc_v4s32_v4s64103 ; CHECK: [[DEF:%[0-9]+]]:_(<2 x s64>) = G_IMPLICIT_DEF104 ; CHECK-NEXT: [[FPTRUNC:%[0-9]+]]:_(<2 x s32>) = G_FPTRUNC [[DEF]](<2 x s64>)105 ; CHECK-NEXT: [[FPTRUNC1:%[0-9]+]]:_(<2 x s32>) = G_FPTRUNC [[DEF]](<2 x s64>)106 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s32>) = G_CONCAT_VECTORS [[FPTRUNC]](<2 x s32>), [[FPTRUNC1]](<2 x s32>)107 ; CHECK-NEXT: $q0 = COPY [[CONCAT_VECTORS]](<4 x s32>)108 ; CHECK-NEXT: RET_ReallyLR implicit $q0109 %0:_(<4 x s64>) = G_IMPLICIT_DEF110 %1:_(<4 x s32>) = G_FPTRUNC %0111 $q0 = COPY %1(<4 x s32>)112 RET_ReallyLR implicit $q0113...114---115name: fptrunc_v8s32_v8s64116body: |117 bb.0:118 119 liveins: $x0, $q0, $q1, $q2, $q3, $x0120 121 ; CHECK-LABEL: name: fptrunc_v8s32_v8s64122 ; CHECK: liveins: $x0, $q0, $q1, $q2, $q3, $x0123 ; CHECK-NEXT: {{ $}}124 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0125 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $q1126 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<2 x s64>) = COPY $q2127 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(<2 x s64>) = COPY $q3128 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(p0) = COPY $x0129 ; CHECK-NEXT: [[FPTRUNC:%[0-9]+]]:_(<2 x s32>) = G_FPTRUNC [[COPY]](<2 x s64>)130 ; CHECK-NEXT: [[FPTRUNC1:%[0-9]+]]:_(<2 x s32>) = G_FPTRUNC [[COPY1]](<2 x s64>)131 ; CHECK-NEXT: [[FPTRUNC2:%[0-9]+]]:_(<2 x s32>) = G_FPTRUNC [[COPY2]](<2 x s64>)132 ; CHECK-NEXT: [[FPTRUNC3:%[0-9]+]]:_(<2 x s32>) = G_FPTRUNC [[COPY3]](<2 x s64>)133 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(p0) = COPY $x0134 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s32>) = G_CONCAT_VECTORS [[FPTRUNC]](<2 x s32>), [[FPTRUNC1]](<2 x s32>)135 ; CHECK-NEXT: [[CONCAT_VECTORS1:%[0-9]+]]:_(<4 x s32>) = G_CONCAT_VECTORS [[FPTRUNC2]](<2 x s32>), [[FPTRUNC3]](<2 x s32>)136 ; CHECK-NEXT: G_STORE [[CONCAT_VECTORS]](<4 x s32>), [[COPY5]](p0) :: (store (<4 x s32>), align 32)137 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 16138 ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY5]], [[C]](s64)139 ; CHECK-NEXT: G_STORE [[CONCAT_VECTORS1]](<4 x s32>), [[PTR_ADD]](p0) :: (store (<4 x s32>) into unknown-address + 16)140 ; CHECK-NEXT: RET_ReallyLR141 %2:_(<2 x s64>) = COPY $q0142 %3:_(<2 x s64>) = COPY $q1143 %4:_(<2 x s64>) = COPY $q2144 %5:_(<2 x s64>) = COPY $q3145 %0:_(<8 x s64>) = G_CONCAT_VECTORS %2(<2 x s64>), %3(<2 x s64>), %4(<2 x s64>), %5(<2 x s64>)146 %1:_(p0) = COPY $x0147 %6:_(<8 x s32>) = G_FPTRUNC %0(<8 x s64>)148 %7:_(p0) = COPY $x0149 G_STORE %6(<8 x s32>), %7(p0) :: (store (<8 x s32>))150 RET_ReallyLR151...152