146 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -O0 -mtriple=aarch64-apple-ios -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s -check-prefix=CHECK3---4name: ptr_add5legalized: true6regBankSelected: true7body: |8 bb.0:9 liveins: $x010 ; CHECK-LABEL: name: ptr_add11 ; CHECK: liveins: $x012 ; CHECK-NEXT: {{ $}}13 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64 = COPY $x014 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr64common = COPY [[COPY]]15 ; CHECK-NEXT: [[ADDXri:%[0-9]+]]:gpr64sp = ADDXri [[COPY1]], 42, 016 ; CHECK-NEXT: $x0 = COPY [[ADDXri]]17 %0:gpr(p0) = COPY $x018 %1:gpr(s64) = G_CONSTANT i64 4219 %2:gpr(p0) = G_PTR_ADD %0, %1(s64)20 $x0 = COPY %2(p0)21...22 23---24name: ptr_add_no_constant25legalized: true26regBankSelected: true27body: |28 bb.0:29 liveins: $x0, $x130 ; CHECK-LABEL: name: ptr_add_no_constant31 ; CHECK: liveins: $x0, $x132 ; CHECK-NEXT: {{ $}}33 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64 = COPY $x034 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr64 = COPY $x135 ; CHECK-NEXT: [[ADDXrr:%[0-9]+]]:gpr64 = ADDXrr [[COPY]], [[COPY1]]36 ; CHECK-NEXT: $x0 = COPY [[ADDXrr]]37 %0:gpr(p0) = COPY $x038 %1:gpr(s64) = COPY $x139 %2:gpr(p0) = G_PTR_ADD %0, %1(s64)40 $x0 = COPY %2(p0)41...42 43---44name: ptr_add_bad_imm45legalized: true46regBankSelected: true47body: |48 bb.0:49 liveins: $x0, $x150 ; CHECK-LABEL: name: ptr_add_bad_imm51 ; CHECK: liveins: $x0, $x152 ; CHECK-NEXT: {{ $}}53 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64 = COPY $x054 ; CHECK-NEXT: [[MOVi32imm:%[0-9]+]]:gpr32 = MOVi32imm 1000055 ; CHECK-NEXT: [[SUBREG_TO_REG:%[0-9]+]]:gpr64 = SUBREG_TO_REG 0, [[MOVi32imm]], %subreg.sub_3256 ; CHECK-NEXT: [[ADDXrr:%[0-9]+]]:gpr64 = ADDXrr [[COPY]], [[SUBREG_TO_REG]]57 ; CHECK-NEXT: $x0 = COPY [[ADDXrr]]58 %0:gpr(p0) = COPY $x059 %1:gpr(s64) = G_CONSTANT i64 1000060 %2:gpr(p0) = G_PTR_ADD %0, %1(s64)61 $x0 = COPY %2(p0)62...63 64---65name: ptr_add_vec66legalized: true67regBankSelected: true68body: |69 bb.0:70 liveins: $q0, $q171 ; CHECK-LABEL: name: ptr_add_vec72 ; CHECK: liveins: $q0, $q173 ; CHECK-NEXT: {{ $}}74 ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q075 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q176 ; CHECK-NEXT: [[ADDv2i64_:%[0-9]+]]:fpr128 = ADDv2i64 [[COPY]], [[COPY1]]77 ; CHECK-NEXT: $q0 = COPY [[ADDv2i64_]]78 %0:fpr(<2 x p0>) = COPY $q079 %1:fpr(<2 x s64>) = COPY $q180 %3:fpr(<2 x p0>) = G_PTR_ADD %0, %1(<2 x s64>)81 $q0 = COPY %3(<2 x p0>)82...83---84name: ptr_add_neg_imm85legalized: true86regBankSelected: true87body: |88 bb.0:89 liveins: $x090 ; CHECK-LABEL: name: ptr_add_neg_imm91 ; CHECK: liveins: $x092 ; CHECK-NEXT: {{ $}}93 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64 = COPY $x094 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr64common = COPY [[COPY]]95 ; CHECK-NEXT: [[SUBSXri:%[0-9]+]]:gpr64 = SUBSXri [[COPY1]], 10, 0, implicit-def dead $nzcv96 ; CHECK-NEXT: $x0 = COPY [[SUBSXri]]97 %0:gpr(p0) = COPY $x098 %1:gpr(s64) = G_CONSTANT i64 -1099 %2:gpr(p0) = G_PTR_ADD %0, %1(s64)100 $x0 = COPY %2(p0)101...102---103name: ptr_add_arith_extended104legalized: true105regBankSelected: true106body: |107 bb.0:108 liveins: $x0109 ; CHECK-LABEL: name: ptr_add_arith_extended110 ; CHECK: liveins: $x0111 ; CHECK-NEXT: {{ $}}112 ; CHECK-NEXT: %reg0:gpr32 = COPY $w0113 ; CHECK-NEXT: %ptr:gpr64 = COPY $x1114 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64common = COPY %ptr115 ; CHECK-NEXT: %ptr_add:gpr64sp = ADDXrx [[COPY]], %reg0, 18116 ; CHECK-NEXT: $x0 = COPY %ptr_add117 %reg0:gpr(s32) = COPY $w0118 %ptr:gpr(p0) = COPY $x1119 %ext:gpr(s64) = G_ZEXT %reg0(s32)120 %cst:gpr(s64) = G_CONSTANT i64 2121 %shift:gpr(s64) = G_SHL %ext, %cst(s64)122 %ptr_add:gpr(p0) = G_PTR_ADD %ptr, %shift(s64)123 $x0 = COPY %ptr_add(p0)124...125---126name: ptr_add_negated_reg127legalized: true128regBankSelected: true129body: |130 bb.0:131 liveins: $x0, $x1132 ; CHECK-LABEL: name: ptr_add_negated_reg133 ; CHECK: liveins: $x0, $x1134 ; CHECK-NEXT: {{ $}}135 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64 = COPY $x0136 ; CHECK-NEXT: %src:gpr64 = COPY $x1137 ; CHECK-NEXT: [[SUBSXrr:%[0-9]+]]:gpr64 = SUBSXrr [[COPY]], %src, implicit-def dead $nzcv138 ; CHECK-NEXT: $x0 = COPY [[SUBSXrr]]139 %0:gpr(p0) = COPY $x0140 %src:gpr(s64) = COPY $x1141 %1:gpr(s64) = G_CONSTANT i64 0142 %neg:gpr(s64) = G_SUB %1, %src143 %2:gpr(p0) = G_PTR_ADD %0, %neg(s64)144 $x0 = COPY %2(p0)145...146