123 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=aarch64-- -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s3 4---5name: insert_gprx6legalized: true7regBankSelected: true8 9body: |10 bb.0:11 liveins: $x012 13 ; CHECK-LABEL: name: insert_gprx14 ; CHECK: liveins: $x015 ; CHECK-NEXT: {{ $}}16 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr32 = COPY $w017 ; CHECK-NEXT: [[DEF:%[0-9]+]]:gpr64 = IMPLICIT_DEF18 ; CHECK-NEXT: [[SUBREG_TO_REG:%[0-9]+]]:gpr64 = SUBREG_TO_REG 0, [[COPY]], %subreg.sub_3219 ; CHECK-NEXT: [[BFMXri:%[0-9]+]]:gpr64 = BFMXri [[DEF]], [[SUBREG_TO_REG]], 0, 3120 ; CHECK-NEXT: [[SUBREG_TO_REG1:%[0-9]+]]:gpr64 = SUBREG_TO_REG 0, [[COPY]], %subreg.sub_3221 ; CHECK-NEXT: [[BFMXri1:%[0-9]+]]:gpr64 = BFMXri [[DEF]], [[SUBREG_TO_REG1]], 51, 3122 ; CHECK-NEXT: $x0 = COPY [[BFMXri]]23 ; CHECK-NEXT: $x1 = COPY [[BFMXri1]]24 %0:gpr(s32) = COPY $w025 26 %1:gpr(s64) = G_IMPLICIT_DEF27 28 %2:gpr(s64) = G_INSERT %1, %0, 029 30 %3:gpr(s64) = G_INSERT %1, %0, 1331 32 $x0 = COPY %233 $x1 = COPY %334...35 36---37name: insert_gprw38legalized: true39regBankSelected: true40 41body: |42 bb.0:43 liveins: $w0, $w144 ; CHECK-LABEL: name: insert_gprw45 ; CHECK: liveins: $w0, $w146 ; CHECK-NEXT: {{ $}}47 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr32 = COPY $w048 ; CHECK-NEXT: [[DEF:%[0-9]+]]:gpr32 = IMPLICIT_DEF49 ; CHECK-NEXT: [[BFMWri:%[0-9]+]]:gpr32 = BFMWri [[DEF]], [[COPY]], 0, 1550 ; CHECK-NEXT: [[BFMWri1:%[0-9]+]]:gpr32 = BFMWri [[BFMWri]], [[COPY]], 16, 1551 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr32all = COPY [[BFMWri1]]52 ; CHECK-NEXT: $w0 = COPY [[COPY1]]53 %1:gpr(s32) = COPY $w054 %2:gpr(s32) = COPY $w155 %3:gpr(s16) = G_TRUNC %1(s32)56 %4:gpr(s16) = G_TRUNC %1(s32)57 %5:gpr(s32) = G_IMPLICIT_DEF58 %6:gpr(s32) = G_INSERT %5, %3(s16), 059 %7:gpr(s32) = G_INSERT %6, %4(s16), 1660 %0:gpr(s32) = COPY %7(s32)61 $w0 = COPY %062...63 64---65name: extract_gprs66legalized: true67regBankSelected: true68 69body: |70 bb.0:71 liveins: $x072 73 ; CHECK-LABEL: name: extract_gprs74 ; CHECK: liveins: $x075 ; CHECK-NEXT: {{ $}}76 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64 = COPY $x077 ; CHECK-NEXT: [[UBFMXri:%[0-9]+]]:gpr64 = UBFMXri [[COPY]], 0, 3178 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr32 = COPY [[UBFMXri]].sub_3279 ; CHECK-NEXT: [[UBFMXri1:%[0-9]+]]:gpr64 = UBFMXri [[COPY]], 13, 4480 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr32 = COPY [[UBFMXri1]].sub_3281 ; CHECK-NEXT: $w0 = COPY [[COPY1]]82 ; CHECK-NEXT: $w1 = COPY [[COPY2]]83 %0:gpr(s64) = COPY $x084 85 %1:gpr(s32) = G_EXTRACT %0, 086 87 %2:gpr(s32) = G_EXTRACT %0, 1388 89 $w0 = COPY %190 $w1 = COPY %291...92 93---94name: extract_gprw95legalized: true96regBankSelected: true97 98body: |99 bb.0:100 liveins: $w0101 102 ; CHECK-LABEL: name: extract_gprw103 ; CHECK: liveins: $w0104 ; CHECK-NEXT: {{ $}}105 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr32 = COPY $w0106 ; CHECK-NEXT: [[UBFMWri:%[0-9]+]]:gpr32 = UBFMWri [[COPY]], 0, 15107 ; CHECK-NEXT: [[UBFMWri1:%[0-9]+]]:gpr32 = UBFMWri [[COPY]], 15, 30108 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY [[UBFMWri]]109 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:fpr16 = COPY [[COPY1]].hsub110 ; CHECK-NEXT: $h0 = COPY [[COPY2]]111 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:fpr32 = COPY [[UBFMWri1]]112 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:fpr16 = COPY [[COPY3]].hsub113 ; CHECK-NEXT: $h1 = COPY [[COPY4]]114 %0:gpr(s32) = COPY $w0115 116 %1:gpr(s16) = G_EXTRACT %0, 0117 118 %2:gpr(s16) = G_EXTRACT %0, 15119 120 $h0 = COPY %1121 $h1 = COPY %2122...123