151 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_to_shl6alignment: 47tracksRegLiveness: true8frameInfo:9 maxAlignment: 110machineFunctionInfo: {}11body: |12 bb.0:13 liveins: $x014 ; CHECK-LABEL: name: mul_to_shl15 ; CHECK: liveins: $x016 ; CHECK-NEXT: {{ $}}17 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x018 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 219 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)20 ; CHECK-NEXT: $x0 = COPY [[SHL]](s64)21 ; CHECK-NEXT: RET_ReallyLR implicit-def $x022 %0:_(s64) = COPY $x023 %1:_(s64) = G_CONSTANT i64 424 %2:_(s64) = G_MUL %0, %1(s64)25 $x0 = COPY %2(s64)26 RET_ReallyLR implicit-def $x027...28---29name: mul_to_shl_1630alignment: 431tracksRegLiveness: true32frameInfo:33 maxAlignment: 134machineFunctionInfo: {}35body: |36 bb.0:37 liveins: $x038 ; CHECK-LABEL: name: mul_to_shl_1639 ; CHECK: liveins: $x040 ; CHECK-NEXT: {{ $}}41 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x042 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 443 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)44 ; CHECK-NEXT: $x0 = COPY [[SHL]](s64)45 ; CHECK-NEXT: RET_ReallyLR implicit-def $x046 %0:_(s64) = COPY $x047 %1:_(s64) = G_CONSTANT i64 1648 %2:_(s64) = G_MUL %0, %1(s64)49 $x0 = COPY %2(s64)50 RET_ReallyLR implicit-def $x051...52---53name: mul_to_shl_vector_1654alignment: 455tracksRegLiveness: true56frameInfo:57 maxAlignment: 158machineFunctionInfo: {}59body: |60 bb.0:61 liveins: $q062 ; Currently not implemented.63 ; CHECK-LABEL: name: mul_to_shl_vector_1664 ; CHECK: liveins: $q065 ; CHECK-NEXT: {{ $}}66 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q067 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1668 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[C]](s32), [[C]](s32), [[C]](s32), [[C]](s32)69 ; CHECK-NEXT: [[MUL:%[0-9]+]]:_(<4 x s32>) = G_MUL [[COPY]], [[BUILD_VECTOR]]70 ; CHECK-NEXT: $q0 = COPY [[MUL]](<4 x s32>)71 ; CHECK-NEXT: RET_ReallyLR implicit-def $q072 %0:_(<4 x s32>) = COPY $q073 %1:_(s32) = G_CONSTANT i32 1674 %2:_(<4 x s32>) = G_BUILD_VECTOR %1(s32), %1(s32), %1(s32), %1(s32)75 %3:_(<4 x s32>) = G_MUL %0, %2(<4 x s32>)76 $q0 = COPY %3(<4 x s32>)77 RET_ReallyLR implicit-def $q078...79---80name: mul_to_shl_non_pow281alignment: 482tracksRegLiveness: true83frameInfo:84 maxAlignment: 185machineFunctionInfo: {}86body: |87 bb.0:88 liveins: $x089 ; CHECK-LABEL: name: mul_to_shl_non_pow290 ; CHECK: liveins: $x091 ; CHECK-NEXT: {{ $}}92 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x093 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1094 ; CHECK-NEXT: [[MUL:%[0-9]+]]:_(s64) = G_MUL [[COPY]], [[C]]95 ; CHECK-NEXT: $x0 = COPY [[MUL]](s64)96 ; CHECK-NEXT: RET_ReallyLR implicit-def $x097 %0:_(s64) = COPY $x098 %1:_(s64) = G_CONSTANT i64 1099 %2:_(s64) = G_MUL %0, %1(s64)100 $x0 = COPY %2(s64)101 RET_ReallyLR implicit-def $x0102...103---104name: mul_to_shl_16_nuw_nsw105alignment: 4106tracksRegLiveness: true107frameInfo:108 maxAlignment: 1109machineFunctionInfo: {}110body: |111 bb.0:112 liveins: $x0113 ; CHECK-LABEL: name: mul_to_shl_16_nuw_nsw114 ; CHECK: liveins: $x0115 ; CHECK-NEXT: {{ $}}116 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0117 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 4118 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = nuw nsw G_SHL [[COPY]], [[C]](s64)119 ; CHECK-NEXT: $x0 = COPY [[SHL]](s64)120 ; CHECK-NEXT: RET_ReallyLR implicit-def $x0121 %0:_(s64) = COPY $x0122 %1:_(s64) = G_CONSTANT i64 16123 %2:_(s64) = nuw nsw G_MUL %0, %1(s64)124 $x0 = COPY %2(s64)125 RET_ReallyLR implicit-def $x0126...127---128name: mul_to_shl_int_min_nuw_nsw129alignment: 4130tracksRegLiveness: true131frameInfo:132 maxAlignment: 1133machineFunctionInfo: {}134body: |135 bb.0:136 liveins: $x0137 ; CHECK-LABEL: name: mul_to_shl_int_min_nuw_nsw138 ; CHECK: liveins: $x0139 ; CHECK-NEXT: {{ $}}140 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0141 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 63142 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = nuw G_SHL [[COPY]], [[C]](s64)143 ; CHECK-NEXT: $x0 = COPY [[SHL]](s64)144 ; CHECK-NEXT: RET_ReallyLR implicit-def $x0145 %0:_(s64) = COPY $x0146 %1:_(s64) = G_CONSTANT i64 -9223372036854775808147 %2:_(s64) = nuw nsw G_MUL %0, %1(s64)148 $x0 = COPY %2(s64)149 RET_ReallyLR implicit-def $x0150...151