202 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: cbz_s326legalized: true7regBankSelected: true8 9body: |10 ; CHECK-LABEL: name: cbz_s3211 ; CHECK: bb.0:12 ; CHECK-NEXT: successors: %bb.0(0x40000000), %bb.1(0x40000000)13 ; CHECK-NEXT: liveins: $w014 ; CHECK-NEXT: {{ $}}15 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr32 = COPY $w016 ; CHECK-NEXT: CBZW [[COPY]], %bb.117 ; CHECK-NEXT: B %bb.018 ; CHECK-NEXT: {{ $}}19 ; CHECK-NEXT: bb.1:20 bb.0:21 liveins: $w022 successors: %bb.0, %bb.123 24 %0:gpr(s32) = COPY $w025 %1:gpr(s32) = G_CONSTANT i32 026 %2:gpr(s32) = G_ICMP intpred(eq), %0, %127 G_BRCOND %2, %bb.128 G_BR %bb.029 30 bb.1:31...32 33---34name: cbz_s6435legalized: true36regBankSelected: true37 38body: |39 ; CHECK-LABEL: name: cbz_s6440 ; CHECK: bb.0:41 ; CHECK-NEXT: successors: %bb.0(0x40000000), %bb.1(0x40000000)42 ; CHECK-NEXT: liveins: $x043 ; CHECK-NEXT: {{ $}}44 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64 = COPY $x045 ; CHECK-NEXT: CBZX [[COPY]], %bb.146 ; CHECK-NEXT: B %bb.047 ; CHECK-NEXT: {{ $}}48 ; CHECK-NEXT: bb.1:49 bb.0:50 liveins: $x051 successors: %bb.0, %bb.152 53 %0:gpr(s64) = COPY $x054 %1:gpr(s64) = G_CONSTANT i64 055 %2:gpr(s32) = G_ICMP intpred(eq), %0, %156 G_BRCOND %2, %bb.157 G_BR %bb.058 59 bb.1:60...61 62---63name: cbnz_s3264legalized: true65regBankSelected: true66 67body: |68 ; CHECK-LABEL: name: cbnz_s3269 ; CHECK: bb.0:70 ; CHECK-NEXT: successors: %bb.0(0x40000000), %bb.1(0x40000000)71 ; CHECK-NEXT: liveins: $w072 ; CHECK-NEXT: {{ $}}73 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr32 = COPY $w074 ; CHECK-NEXT: CBNZW [[COPY]], %bb.175 ; CHECK-NEXT: B %bb.076 ; CHECK-NEXT: {{ $}}77 ; CHECK-NEXT: bb.1:78 bb.0:79 liveins: $w080 successors: %bb.0, %bb.181 82 %0:gpr(s32) = COPY $w083 %1:gpr(s32) = G_CONSTANT i32 084 %2:gpr(s32) = G_ICMP intpred(ne), %0, %185 G_BRCOND %2, %bb.186 G_BR %bb.087 88 bb.1:89...90 91---92name: cbnz_s6493legalized: true94regBankSelected: true95 96body: |97 ; CHECK-LABEL: name: cbnz_s6498 ; CHECK: bb.0:99 ; CHECK-NEXT: successors: %bb.0(0x40000000), %bb.1(0x40000000)100 ; CHECK-NEXT: liveins: $x0101 ; CHECK-NEXT: {{ $}}102 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64 = COPY $x0103 ; CHECK-NEXT: CBNZX [[COPY]], %bb.1104 ; CHECK-NEXT: B %bb.0105 ; CHECK-NEXT: {{ $}}106 ; CHECK-NEXT: bb.1:107 bb.0:108 liveins: $x0109 successors: %bb.0, %bb.1110 111 %0:gpr(s64) = COPY $x0112 %1:gpr(s64) = G_CONSTANT i64 0113 %2:gpr(s32) = G_ICMP intpred(ne), %0, %1114 G_BRCOND %2, %bb.1115 G_BR %bb.0116 117 bb.1:118...119---120name: test_rhs_inttoptr121alignment: 4122legalized: true123regBankSelected: true124tracksRegLiveness: true125body: |126 ; CHECK-LABEL: name: test_rhs_inttoptr127 ; CHECK: bb.0:128 ; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)129 ; CHECK-NEXT: liveins: $x0130 ; CHECK-NEXT: {{ $}}131 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64common = COPY $x0132 ; CHECK-NEXT: CBZX [[COPY]], %bb.2133 ; CHECK-NEXT: {{ $}}134 ; CHECK-NEXT: bb.1:135 ; CHECK-NEXT: successors: %bb.2(0x80000000)136 ; CHECK-NEXT: {{ $}}137 ; CHECK-NEXT: STRXui $xzr, [[COPY]], 0 :: (store (s64))138 ; CHECK-NEXT: {{ $}}139 ; CHECK-NEXT: bb.2:140 ; CHECK-NEXT: RET_ReallyLR141 bb.1:142 successors: %bb.2, %bb.3143 liveins: $x0144 145 %0:gpr(p0) = COPY $x0146 %2:gpr(s64) = G_CONSTANT i64 0147 %1:gpr(p0) = G_INTTOPTR %2(s64)148 %4:gpr(s32) = G_ICMP intpred(eq), %0(p0), %1149 G_BRCOND %4, %bb.3150 151 bb.2:152 %5:gpr(s64) = G_CONSTANT i64 0153 G_STORE %5(s64), %0(p0) :: (store (s64))154 155 bb.3:156 RET_ReallyLR157 158...159---160name: test_rhs_unknown161alignment: 4162legalized: true163regBankSelected: true164tracksRegLiveness: true165body: |166 ; CHECK-LABEL: name: test_rhs_unknown167 ; CHECK: bb.0:168 ; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)169 ; CHECK-NEXT: liveins: $x0170 ; CHECK-NEXT: {{ $}}171 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0172 ; CHECK-NEXT: [[LDRXui:%[0-9]+]]:gpr64common = LDRXui [[COPY]], 0 :: (load (s64))173 ; CHECK-NEXT: [[SUBSXri:%[0-9]+]]:gpr64 = SUBSXri [[LDRXui]], 42, 0, implicit-def $nzcv174 ; CHECK-NEXT: Bcc 0, %bb.2, implicit $nzcv175 ; CHECK-NEXT: {{ $}}176 ; CHECK-NEXT: bb.1:177 ; CHECK-NEXT: successors: %bb.2(0x80000000)178 ; CHECK-NEXT: {{ $}}179 ; CHECK-NEXT: STRXui $xzr, [[COPY]], 0 :: (store (s64))180 ; CHECK-NEXT: {{ $}}181 ; CHECK-NEXT: bb.2:182 ; CHECK-NEXT: RET_ReallyLR183 bb.1:184 successors: %bb.2, %bb.3185 liveins: $x0186 187 %0:gpr(p0) = COPY $x0188 %2:gpr(s64) = G_CONSTANT i64 42189 %4:gpr(s64) = G_CONSTANT i64 0190 %1:gpr(s64) = G_LOAD %0(p0) :: (load (s64))191 %5:gpr(s32) = G_ICMP intpred(eq), %1(s64), %2192 G_BRCOND %5, %bb.3193 194 bb.2:195 %6:gpr(s64) = G_CONSTANT i64 0196 G_STORE %6(s64), %0(p0) :: (store (s64))197 198 bb.3:199 RET_ReallyLR200 201 202