170 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -run-pass=aarch64-prelegalizer-combiner -verify-machineinstrs -mtriple aarch64-unknown-unknown %s -o - | FileCheck %s3 4---5name: mul_by_zero6alignment: 47tracksRegLiveness: true8frameInfo:9 maxAlignment: 110machineFunctionInfo: {}11body: |12 bb.0:13 liveins: $x014 ; CHECK-LABEL: name: mul_by_zero15 ; CHECK: liveins: $x016 ; CHECK-NEXT: {{ $}}17 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 018 ; CHECK-NEXT: $x0 = COPY [[C]](s64)19 %0:_(s64) = COPY $x020 %1:_(s64) = G_CONSTANT i64 021 %2:_(s64) = G_MUL %0, %1(s64)22 $x0 = COPY %2(s64)23...24---25name: mul_vector_by_zero26alignment: 427tracksRegLiveness: true28frameInfo:29 maxAlignment: 130machineFunctionInfo: {}31body: |32 bb.0:33 liveins: $q034 ; CHECK-LABEL: name: mul_vector_by_zero35 ; CHECK: liveins: $q036 ; CHECK-NEXT: {{ $}}37 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 038 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[C]](s32), [[C]](s32), [[C]](s32), [[C]](s32)39 ; CHECK-NEXT: $q0 = COPY [[BUILD_VECTOR]](<4 x s32>)40 %0:_(<4 x s32>) = COPY $q041 %1:_(s32) = G_CONSTANT i32 042 %2:_(<4 x s32>) = G_BUILD_VECTOR %1(s32), %1(s32), %1(s32), %1(s32)43 %3:_(<4 x s32>) = G_MUL %0, %2(<4 x s32>)44 $q0 = COPY %3(<4 x s32>)45...46---47name: mul_by_one48alignment: 449tracksRegLiveness: true50frameInfo:51 maxAlignment: 152machineFunctionInfo: {}53body: |54 bb.0:55 liveins: $x056 ; CHECK-LABEL: name: mul_by_one57 ; CHECK: liveins: $x058 ; CHECK-NEXT: {{ $}}59 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x060 ; CHECK-NEXT: $x0 = COPY [[COPY]](s64)61 %0:_(s64) = COPY $x062 %1:_(s64) = G_CONSTANT i64 163 %2:_(s64) = G_MUL %0, %1(s64)64 $x0 = COPY %2(s64)65...66---67name: fmul_by_one68tracksRegLiveness: true69body: |70 bb.0:71 liveins: $d072 ; CHECK-LABEL: name: fmul_by_one73 ; CHECK: liveins: $d074 ; CHECK-NEXT: {{ $}}75 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $d076 ; CHECK-NEXT: $d0 = COPY [[COPY]](s64)77 %0:_(s64) = COPY $d078 %1:_(s64) = G_FCONSTANT double 1.000000e+0079 %2:_(s64) = G_FMUL %0, %1(s64)80 $d0 = COPY %2(s64)81...82---83name: fmul_vector_by_one84alignment: 485tracksRegLiveness: true86frameInfo:87 maxAlignment: 188machineFunctionInfo: {}89body: |90 bb.0:91 liveins: $q092 ; CHECK-LABEL: name: fmul_vector_by_one93 ; CHECK: liveins: $q094 ; CHECK-NEXT: {{ $}}95 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q096 ; CHECK-NEXT: $q0 = COPY [[COPY]](<4 x s32>)97 %0:_(<4 x s32>) = COPY $q098 %1:_(s32) = G_FCONSTANT float 1.099 %2:_(<4 x s32>) = G_BUILD_VECTOR %1(s32), %1(s32), %1(s32), %1(s32)100 %3:_(<4 x s32>) = G_FMUL %0, %2(<4 x s32>)101 $q0 = COPY %3(<4 x s32>)102...103---104name: mul_vector_by_one105alignment: 4106tracksRegLiveness: true107frameInfo:108 maxAlignment: 1109machineFunctionInfo: {}110body: |111 bb.0:112 liveins: $q0113 ; CHECK-LABEL: name: mul_vector_by_one114 ; CHECK: liveins: $q0115 ; CHECK-NEXT: {{ $}}116 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0117 ; CHECK-NEXT: $q0 = COPY [[COPY]](<4 x s32>)118 %0:_(<4 x s32>) = COPY $q0119 %1:_(s32) = G_CONSTANT i32 1120 %2:_(<4 x s32>) = G_BUILD_VECTOR %1(s32), %1(s32), %1(s32), %1(s32)121 %3:_(<4 x s32>) = G_MUL %0, %2(<4 x s32>)122 $q0 = COPY %3(<4 x s32>)123...124---125name: mul_by_neg_one126alignment: 4127tracksRegLiveness: true128frameInfo:129 maxAlignment: 1130machineFunctionInfo: {}131body: |132 bb.0:133 liveins: $x0134 ; CHECK-LABEL: name: mul_by_neg_one135 ; CHECK: liveins: $x0136 ; CHECK-NEXT: {{ $}}137 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0138 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0139 ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s64) = G_SUB [[C]], [[COPY]]140 ; CHECK-NEXT: $x0 = COPY [[SUB]](s64)141 %0:_(s64) = COPY $x0142 %1:_(s64) = G_CONSTANT i64 -1143 %2:_(s64) = G_MUL %0, %1(s64)144 $x0 = COPY %2(s64)145...146---147name: mul_vector_by_neg_one148alignment: 4149tracksRegLiveness: true150frameInfo:151 maxAlignment: 1152machineFunctionInfo: {}153body: |154 bb.0:155 liveins: $q0156 ; CHECK-LABEL: name: mul_vector_by_neg_one157 ; CHECK: liveins: $q0158 ; CHECK-NEXT: {{ $}}159 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0160 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0161 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[C]](s32), [[C]](s32), [[C]](s32), [[C]](s32)162 ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(<4 x s32>) = G_SUB [[BUILD_VECTOR]], [[COPY]]163 ; CHECK-NEXT: $q0 = COPY [[SUB]](<4 x s32>)164 %0:_(<4 x s32>) = COPY $q0165 %1:_(s32) = G_CONSTANT i32 -1166 %2:_(<4 x s32>) = G_BUILD_VECTOR %1(s32), %1(s32), %1(s32), %1(s32)167 %3:_(<4 x s32>) = G_MUL %0, %2(<4 x s32>)168 $q0 = COPY %3(<4 x s32>)169...170