brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.4 KiB · 3ff7221 Raw
156 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_lshr6alignment:       47tracksRegLiveness: true8frameInfo:9  maxAlignment:    110machineFunctionInfo: {}11body:             |12  bb.0:13    liveins: $x014    ; CHECK-LABEL: name: mul_to_lshr15    ; CHECK: liveins: $x016    ; CHECK-NEXT: {{  $}}17    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x018    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 6119    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s64) = G_LSHR [[COPY]], [[C]](s64)20    ; CHECK-NEXT: $x0 = COPY [[LSHR]](s64)21    %0:_(s64) = COPY $x022    %1:_(s64) = G_CONSTANT i64 823    %2:_(s64) = G_UMULH %0, %1(s64)24    $x0 = COPY %2(s64)25...26---27name:            mul_to_lshr_vector28alignment:       429tracksRegLiveness: true30frameInfo:31  maxAlignment:    132machineFunctionInfo: {}33body:             |34  bb.0:35    liveins: $q036    ; CHECK-LABEL: name: mul_to_lshr_vector37    ; CHECK: liveins: $q038    ; CHECK-NEXT: {{  $}}39    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q040    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2941    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[C]](s32), [[C]](s32), [[C]](s32), [[C]](s32)42    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(<4 x s32>) = G_LSHR [[COPY]], [[BUILD_VECTOR]](<4 x s32>)43    ; CHECK-NEXT: $q0 = COPY [[LSHR]](<4 x s32>)44    %0:_(<4 x s32>) = COPY $q045    %1:_(s32) = G_CONSTANT i32 846    %bv:_(<4 x s32>) = G_BUILD_VECTOR %1, %1, %1, %147    %2:_(<4 x s32>) = G_UMULH %0, %bv(<4 x s32>)48    $q0 = COPY %2(<4 x s32>)49...50---51name:            mul_to_lshr_vector_out_of_range_shift52alignment:       453tracksRegLiveness: true54frameInfo:55  maxAlignment:    156machineFunctionInfo: {}57body:             |58  bb.0:59    liveins: $q060    ; CHECK-LABEL: name: mul_to_lshr_vector_out_of_range_shift61    ; CHECK: liveins: $q062    ; CHECK-NEXT: {{  $}}63    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q064    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 165    ; CHECK-NEXT: %bv:_(<4 x s32>) = G_BUILD_VECTOR [[C]](s32), [[C]](s32), [[C]](s32), [[C]](s32)66    ; CHECK-NEXT: [[UMULH:%[0-9]+]]:_(<4 x s32>) = G_UMULH [[COPY]], %bv67    ; CHECK-NEXT: $q0 = COPY [[UMULH]](<4 x s32>)68    %0:_(<4 x s32>) = COPY $q069    %1:_(s32) = G_CONSTANT i32 170    %bv:_(<4 x s32>) = G_BUILD_VECTOR %1, %1, %1, %171    %2:_(<4 x s32>) = G_UMULH %0, %bv(<4 x s32>)72    $q0 = COPY %2(<4 x s32>)73...74---75name:            mul_to_lshr_out_of_range_shift76alignment:       477tracksRegLiveness: true78frameInfo:79  maxAlignment:    180machineFunctionInfo: {}81body:             |82  bb.0:83    liveins: $x084    ; CHECK-LABEL: name: mul_to_lshr_out_of_range_shift85    ; CHECK: liveins: $x086    ; CHECK-NEXT: {{  $}}87    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x088    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 189    ; CHECK-NEXT: [[UMULH:%[0-9]+]]:_(s64) = G_UMULH [[COPY]], [[C]]90    ; CHECK-NEXT: $x0 = COPY [[UMULH]](s64)91    %0:_(s64) = COPY $x092    %1:_(s64) = G_CONSTANT i64 193    %2:_(s64) = G_UMULH %0, %1(s64)94    $x0 = COPY %2(s64)95...96---97name:            mul_to_lshr_vector_nonuniform_const98alignment:       499tracksRegLiveness: true100frameInfo:101  maxAlignment:    1102machineFunctionInfo: {}103body:             |104  bb.0:105    liveins: $q0106    ; CHECK-LABEL: name: mul_to_lshr_vector_nonuniform_const107    ; CHECK: liveins: $q0108    ; CHECK-NEXT: {{  $}}109    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0110    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 28111    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 27112    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 26113    ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 29114    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[C3]](s32), [[C]](s32), [[C1]](s32), [[C2]](s32)115    ; CHECK-NEXT: %mulh:_(<4 x s32>) = G_LSHR [[COPY]], [[BUILD_VECTOR]](<4 x s32>)116    ; CHECK-NEXT: $q0 = COPY %mulh(<4 x s32>)117    %0:_(<4 x s32>) = COPY $q0118    %cst1:_(s32) = G_CONSTANT i32 8119    %cst2:_(s32) = G_CONSTANT i32 16120    %cst3:_(s32) = G_CONSTANT i32 32121    %cst4:_(s32) = G_CONSTANT i32 64122    %bv:_(<4 x s32>) = G_BUILD_VECTOR %cst1, %cst2, %cst3, %cst4123    %mulh:_(<4 x s32>) = G_UMULH %0, %bv(<4 x s32>)124    $q0 = COPY %mulh(<4 x s32>)125...126---127name:            mul_to_lshr_vector_nonuniform_const_elt_is_one128alignment:       4129tracksRegLiveness: true130frameInfo:131  maxAlignment:    1132machineFunctionInfo: {}133body:             |134  bb.0:135    liveins: $q0136    ; CHECK-LABEL: name: mul_to_lshr_vector_nonuniform_const_elt_is_one137    ; CHECK: liveins: $q0138    ; CHECK-NEXT: {{  $}}139    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0140    ; CHECK-NEXT: %cst1:_(s32) = G_CONSTANT i32 8141    ; CHECK-NEXT: %cst2:_(s32) = G_CONSTANT i32 1142    ; CHECK-NEXT: %cst3:_(s32) = G_CONSTANT i32 32143    ; CHECK-NEXT: %cst4:_(s32) = G_CONSTANT i32 64144    ; CHECK-NEXT: %bv:_(<4 x s32>) = G_BUILD_VECTOR %cst1(s32), %cst2(s32), %cst3(s32), %cst4(s32)145    ; CHECK-NEXT: %mulh:_(<4 x s32>) = G_UMULH [[COPY]], %bv146    ; CHECK-NEXT: $q0 = COPY %mulh(<4 x s32>)147    %0:_(<4 x s32>) = COPY $q0148    %cst1:_(s32) = G_CONSTANT i32 8149    %cst2:_(s32) = G_CONSTANT i32 1150    %cst3:_(s32) = G_CONSTANT i32 32151    %cst4:_(s32) = G_CONSTANT i32 64152    %bv:_(<4 x s32>) = G_BUILD_VECTOR %cst1, %cst2, %cst3, %cst4153    %mulh:_(<4 x s32>) = G_UMULH %0, %bv(<4 x s32>)154    $q0 = COPY %mulh(<4 x s32>)155...156