79 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=aarch64-unknown-unknown -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s3#4# Test patterns related to logical_shifted_reg32/logical_shifted_reg64 which5# are not shared with arith_shifted_reg32/arith_shifted_reg64.6 7---8name: and_xor_bicxrs9legalized: true10regBankSelected: true11tracksRegLiveness: true12body: |13 bb.0:14 liveins: $x015 ; CHECK-LABEL: name: and_xor_bicxrs16 ; CHECK: liveins: $x017 ; CHECK-NEXT: {{ $}}18 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64 = COPY $x019 ; CHECK-NEXT: [[BICXrs:%[0-9]+]]:gpr64 = BICXrs [[COPY]], [[COPY]], 820 ; CHECK-NEXT: $x0 = COPY [[BICXrs]]21 ; CHECK-NEXT: RET_ReallyLR implicit $x022 %0:gpr(s64) = COPY $x023 %1:gpr(s64) = G_CONSTANT i64 824 %2:gpr(s64) = G_CONSTANT i64 -125 %3:gpr(s64) = G_SHL %0, %1:gpr(s64)26 %4:gpr(s64) = G_XOR %3, %2:gpr(s64)27 %5:gpr(s64) = G_AND %0, %4:gpr(s64)28 $x0 = COPY %5:gpr(s64)29 RET_ReallyLR implicit $x030...31---32name: or_xor_ornxrs33legalized: true34regBankSelected: true35tracksRegLiveness: true36body: |37 bb.0:38 liveins: $x039 ; CHECK-LABEL: name: or_xor_ornxrs40 ; CHECK: liveins: $x041 ; CHECK-NEXT: {{ $}}42 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64 = COPY $x043 ; CHECK-NEXT: [[ORNXrs:%[0-9]+]]:gpr64 = ORNXrs [[COPY]], [[COPY]], 844 ; CHECK-NEXT: $x0 = COPY [[ORNXrs]]45 ; CHECK-NEXT: RET_ReallyLR implicit $x046 %0:gpr(s64) = COPY $x047 %1:gpr(s64) = G_CONSTANT i64 848 %2:gpr(s64) = G_CONSTANT i64 -149 %3:gpr(s64) = G_SHL %0, %1:gpr(s64)50 %4:gpr(s64) = G_XOR %3, %2:gpr(s64)51 %5:gpr(s64) = G_OR %0, %4:gpr(s64)52 $x0 = COPY %5:gpr(s64)53 RET_ReallyLR implicit $x054...55---56name: xor_xor_eonxrs57legalized: true58regBankSelected: true59tracksRegLiveness: true60body: |61 bb.0:62 liveins: $x063 ; CHECK-LABEL: name: xor_xor_eonxrs64 ; CHECK: liveins: $x065 ; CHECK-NEXT: {{ $}}66 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64 = COPY $x067 ; CHECK-NEXT: [[EONXrs:%[0-9]+]]:gpr64 = EONXrs [[COPY]], [[COPY]], 868 ; CHECK-NEXT: $x0 = COPY [[EONXrs]]69 ; CHECK-NEXT: RET_ReallyLR implicit $x070 %0:gpr(s64) = COPY $x071 %1:gpr(s64) = G_CONSTANT i64 872 %2:gpr(s64) = G_CONSTANT i64 -173 %3:gpr(s64) = G_SHL %0, %1:gpr(s64)74 %4:gpr(s64) = G_XOR %3, %2:gpr(s64)75 %5:gpr(s64) = G_XOR %0, %4:gpr(s64)76 $x0 = COPY %5:gpr(s64)77 RET_ReallyLR implicit $x078...79