603 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -debugify-and-strip-all-safe -mtriple aarch64 -run-pass=aarch64-prelegalizer-combiner --aarch64prelegalizercombiner-only-enable-rule="icmp_to_true_false_known_bits" -global-isel -verify-machineinstrs %s -o - | FileCheck %s3# REQUIRES: asserts4 5--- |6 define i1 @eq_true(ptr %ptr) { unreachable }7 define i1 @ne_true(ptr %ptr) { unreachable }8 define i1 @sge_true(ptr %ptr) { unreachable }9 define i1 @sgt_true(ptr %ptr) { unreachable }10 define i1 @sle_true(ptr %ptr) { unreachable }11 define i1 @slt_true(ptr %ptr) { unreachable }12 define i1 @uge_true(ptr %ptr) { unreachable }13 define i1 @ugt_true(ptr %ptr) { unreachable }14 define i1 @ule_true(ptr %ptr) { unreachable }15 define i1 @ult_true(ptr %ptr) { unreachable }16 17 define i1 @eq_false(ptr %ptr) { unreachable }18 define i1 @ne_false(ptr %ptr) { unreachable }19 define i1 @sge_false(ptr %ptr) { unreachable }20 define i1 @sgt_false(ptr %ptr) { unreachable }21 define i1 @sle_false(ptr %ptr) { unreachable }22 define i1 @slt_false(ptr %ptr) { unreachable }23 define i1 @uge_false(ptr %ptr) { unreachable }24 define i1 @ugt_false(ptr %ptr) { unreachable }25 define i1 @ule_false(ptr %ptr) { unreachable }26 define i1 @ult_false(ptr %ptr) { unreachable }27 28 define i1 @eq_unknown(ptr %ptr) { unreachable }29 define i1 @ne_unknown(ptr %ptr) { unreachable }30 31 define i1 @vector_true(ptr %ptr) { unreachable }32 define i1 @vector_false(ptr %ptr) { unreachable }33 34 !0 = !{i32 1, i32 2}35 !1 = !{i32 1, i32 3}36 37...38---39name: eq_true40tracksRegLiveness: true41body: |42 bb.0:43 liveins: $x044 45 ; CHECK-LABEL: name: eq_true46 ; CHECK: liveins: $x047 ; CHECK-NEXT: {{ $}}48 ; CHECK-NEXT: %cmp:_(s1) = G_CONSTANT i1 true49 ; CHECK-NEXT: %cmp_ext:_(s32) = G_ZEXT %cmp(s1)50 ; CHECK-NEXT: $w0 = COPY %cmp_ext(s32)51 ; CHECK-NEXT: RET_ReallyLR implicit $w052 %ptr:_(p0) = COPY $x053 %cst:_(s32) = G_CONSTANT i32 154 %cmp:_(s1) = G_ICMP intpred(eq), %cst(s32), %cst55 %cmp_ext:_(s32) = G_ZEXT %cmp(s1)56 $w0 = COPY %cmp_ext(s32)57 RET_ReallyLR implicit $w058 59...60---61name: ne_true62tracksRegLiveness: true63body: |64 bb.0:65 liveins: $x066 67 ; CHECK-LABEL: name: ne_true68 ; CHECK: liveins: $x069 ; CHECK-NEXT: {{ $}}70 ; CHECK-NEXT: %cmp:_(s1) = G_CONSTANT i1 true71 ; CHECK-NEXT: %cmp_ext:_(s32) = G_ZEXT %cmp(s1)72 ; CHECK-NEXT: $w0 = COPY %cmp_ext(s32)73 ; CHECK-NEXT: RET_ReallyLR implicit $w074 %ptr:_(p0) = COPY $x075 %cst_1:_(s32) = G_CONSTANT i32 176 %cst_2:_(s32) = G_CONSTANT i32 277 %cmp:_(s1) = G_ICMP intpred(ne), %cst_1(s32), %cst_278 %cmp_ext:_(s32) = G_ZEXT %cmp(s1)79 $w0 = COPY %cmp_ext(s32)80 RET_ReallyLR implicit $w081 82...83---84name: sge_true85tracksRegLiveness: true86body: |87 bb.0:88 liveins: $x089 90 ; CHECK-LABEL: name: sge_true91 ; CHECK: liveins: $x092 ; CHECK-NEXT: {{ $}}93 ; CHECK-NEXT: %cmp:_(s1) = G_CONSTANT i1 true94 ; CHECK-NEXT: %cmp_ext:_(s32) = G_ZEXT %cmp(s1)95 ; CHECK-NEXT: $w0 = COPY %cmp_ext(s32)96 ; CHECK-NEXT: RET_ReallyLR implicit $w097 %ptr:_(p0) = COPY $x098 %cst:_(s32) = G_CONSTANT i32 299 %load_eq_1:_(s32) = G_LOAD %ptr(p0) :: (load (s32), !range !0)100 %cmp:_(s1) = G_ICMP intpred(sge), %cst, %load_eq_1(s32)101 %cmp_ext:_(s32) = G_ZEXT %cmp(s1)102 $w0 = COPY %cmp_ext(s32)103 RET_ReallyLR implicit $w0104 105...106---107name: sgt_true108tracksRegLiveness: true109body: |110 bb.0:111 liveins: $x0112 113 ; CHECK-LABEL: name: sgt_true114 ; CHECK: liveins: $x0115 ; CHECK-NEXT: {{ $}}116 ; CHECK-NEXT: %cmp:_(s1) = G_CONSTANT i1 true117 ; CHECK-NEXT: %cmp_ext:_(s32) = G_ZEXT %cmp(s1)118 ; CHECK-NEXT: $w0 = COPY %cmp_ext(s32)119 ; CHECK-NEXT: RET_ReallyLR implicit $w0120 %ptr:_(p0) = COPY $x0121 %cst:_(s32) = G_CONSTANT i32 3122 %load_eq_1:_(s32) = G_LOAD %ptr(p0) :: (load (s32), !range !0)123 %cmp:_(s1) = G_ICMP intpred(sgt), %cst, %load_eq_1(s32)124 %cmp_ext:_(s32) = G_ZEXT %cmp(s1)125 $w0 = COPY %cmp_ext(s32)126 RET_ReallyLR implicit $w0127 128...129---130name: sle_true131tracksRegLiveness: true132body: |133 bb.0:134 liveins: $x0135 136 ; CHECK-LABEL: name: sle_true137 ; CHECK: liveins: $x0138 ; CHECK-NEXT: {{ $}}139 ; CHECK-NEXT: %cmp:_(s1) = G_CONSTANT i1 true140 ; CHECK-NEXT: %cmp_ext:_(s32) = G_ZEXT %cmp(s1)141 ; CHECK-NEXT: $w0 = COPY %cmp_ext(s32)142 ; CHECK-NEXT: RET_ReallyLR implicit $w0143 %ptr:_(p0) = COPY $x0144 %cst:_(s32) = G_CONSTANT i32 1145 %load_eq_1:_(s32) = G_LOAD %ptr(p0) :: (load (s32), !range !0)146 %cmp:_(s1) = G_ICMP intpred(sle), %cst, %load_eq_1(s32)147 %cmp_ext:_(s32) = G_ZEXT %cmp(s1)148 $w0 = COPY %cmp_ext(s32)149 RET_ReallyLR implicit $w0150 151 152...153---154name: slt_true155tracksRegLiveness: true156body: |157 bb.0:158 liveins: $x0159 160 ; CHECK-LABEL: name: slt_true161 ; CHECK: liveins: $x0162 ; CHECK-NEXT: {{ $}}163 ; CHECK-NEXT: %cmp:_(s1) = G_CONSTANT i1 true164 ; CHECK-NEXT: %cmp_ext:_(s32) = G_ZEXT %cmp(s1)165 ; CHECK-NEXT: $w0 = COPY %cmp_ext(s32)166 ; CHECK-NEXT: RET_ReallyLR implicit $w0167 %ptr:_(p0) = COPY $x0168 %cst:_(s32) = G_CONSTANT i32 -1169 %load_eq_1:_(s32) = G_LOAD %ptr(p0) :: (load (s32), !range !0)170 %cmp:_(s1) = G_ICMP intpred(slt), %cst, %load_eq_1(s32)171 %cmp_ext:_(s32) = G_ZEXT %cmp(s1)172 $w0 = COPY %cmp_ext(s32)173 RET_ReallyLR implicit $w0174 175...176---177name: uge_true178tracksRegLiveness: true179body: |180 bb.0:181 liveins: $x0182 183 ; CHECK-LABEL: name: uge_true184 ; CHECK: liveins: $x0185 ; CHECK-NEXT: {{ $}}186 ; CHECK-NEXT: %cmp:_(s1) = G_CONSTANT i1 true187 ; CHECK-NEXT: %cmp_ext:_(s32) = G_ZEXT %cmp(s1)188 ; CHECK-NEXT: $w0 = COPY %cmp_ext(s32)189 ; CHECK-NEXT: RET_ReallyLR implicit $w0190 %ptr:_(p0) = COPY $x0191 %cst:_(s32) = G_CONSTANT i32 2192 %load_eq_1:_(s32) = G_LOAD %ptr(p0) :: (load (s32), !range !0)193 %cmp:_(s1) = G_ICMP intpred(uge), %cst, %load_eq_1(s32)194 %cmp_ext:_(s32) = G_ZEXT %cmp(s1)195 $w0 = COPY %cmp_ext(s32)196 RET_ReallyLR implicit $w0197 198...199---200name: ugt_true201tracksRegLiveness: true202body: |203 bb.0:204 liveins: $x0205 206 ; CHECK-LABEL: name: ugt_true207 ; CHECK: liveins: $x0208 ; CHECK-NEXT: {{ $}}209 ; CHECK-NEXT: %cmp:_(s1) = G_CONSTANT i1 true210 ; CHECK-NEXT: %cmp_ext:_(s32) = G_ZEXT %cmp(s1)211 ; CHECK-NEXT: $w0 = COPY %cmp_ext(s32)212 ; CHECK-NEXT: RET_ReallyLR implicit $w0213 %ptr:_(p0) = COPY $x0214 %cst:_(s32) = G_CONSTANT i32 -1215 %load_eq_1:_(s32) = G_LOAD %ptr(p0) :: (load (s32), !range !0)216 %cmp:_(s1) = G_ICMP intpred(ugt), %cst, %load_eq_1(s32)217 %cmp_ext:_(s32) = G_ZEXT %cmp(s1)218 $w0 = COPY %cmp_ext(s32)219 RET_ReallyLR implicit $w0220 221...222---223name: ule_true224tracksRegLiveness: true225body: |226 bb.0:227 liveins: $x0228 229 ; CHECK-LABEL: name: ule_true230 ; CHECK: liveins: $x0231 ; CHECK-NEXT: {{ $}}232 ; CHECK-NEXT: %cmp:_(s1) = G_CONSTANT i1 true233 ; CHECK-NEXT: %cmp_ext:_(s32) = G_ZEXT %cmp(s1)234 ; CHECK-NEXT: $w0 = COPY %cmp_ext(s32)235 ; CHECK-NEXT: RET_ReallyLR implicit $w0236 %ptr:_(p0) = COPY $x0237 %cst:_(s32) = G_CONSTANT i32 1238 %load_eq_1:_(s32) = G_LOAD %ptr(p0) :: (load (s32), !range !0)239 %cmp:_(s1) = G_ICMP intpred(ule), %cst, %load_eq_1(s32)240 %cmp_ext:_(s32) = G_ZEXT %cmp(s1)241 $w0 = COPY %cmp_ext(s32)242 RET_ReallyLR implicit $w0243 244...245---246name: ult_true247tracksRegLiveness: true248body: |249 bb.0:250 liveins: $x0251 252 ; CHECK-LABEL: name: ult_true253 ; CHECK: liveins: $x0254 ; CHECK-NEXT: {{ $}}255 ; CHECK-NEXT: %cmp:_(s1) = G_CONSTANT i1 true256 ; CHECK-NEXT: %cmp_ext:_(s32) = G_ZEXT %cmp(s1)257 ; CHECK-NEXT: $w0 = COPY %cmp_ext(s32)258 ; CHECK-NEXT: RET_ReallyLR implicit $w0259 %ptr:_(p0) = COPY $x0260 %cst:_(s32) = G_CONSTANT i32 0261 %load_eq_1:_(s32) = G_LOAD %ptr(p0) :: (load (s32), !range !0)262 %cmp:_(s1) = G_ICMP intpred(ule), %cst, %load_eq_1(s32)263 %cmp_ext:_(s32) = G_ZEXT %cmp(s1)264 $w0 = COPY %cmp_ext(s32)265 RET_ReallyLR implicit $w0266 267...268---269name: eq_false270tracksRegLiveness: true271body: |272 bb.0:273 liveins: $x0274 275 ; CHECK-LABEL: name: eq_false276 ; CHECK: liveins: $x0277 ; CHECK-NEXT: {{ $}}278 ; CHECK-NEXT: %cmp:_(s1) = G_CONSTANT i1 false279 ; CHECK-NEXT: %cmp_ext:_(s32) = G_ZEXT %cmp(s1)280 ; CHECK-NEXT: $w0 = COPY %cmp_ext(s32)281 ; CHECK-NEXT: RET_ReallyLR implicit $w0282 %ptr:_(p0) = COPY $x0283 %cst:_(s32) = G_CONSTANT i32 0284 %load_eq_1:_(s32) = G_LOAD %ptr(p0) :: (load (s32), !range !0)285 %cmp:_(s1) = G_ICMP intpred(eq), %load_eq_1(s32), %cst286 %cmp_ext:_(s32) = G_ZEXT %cmp(s1)287 $w0 = COPY %cmp_ext(s32)288 RET_ReallyLR implicit $w0289 290...291---292name: ne_false293tracksRegLiveness: true294body: |295 bb.0:296 liveins: $x0297 298 ; CHECK-LABEL: name: ne_false299 ; CHECK: liveins: $x0300 ; CHECK-NEXT: {{ $}}301 ; CHECK-NEXT: %cmp:_(s1) = G_CONSTANT i1 false302 ; CHECK-NEXT: %cmp_ext:_(s32) = G_ZEXT %cmp(s1)303 ; CHECK-NEXT: $w0 = COPY %cmp_ext(s32)304 ; CHECK-NEXT: RET_ReallyLR implicit $w0305 %ptr:_(p0) = COPY $x0306 %cst_1:_(s32) = G_CONSTANT i32 1307 %cst_2:_(s32) = G_CONSTANT i32 1308 %cmp:_(s1) = G_ICMP intpred(ne), %cst_1(s32), %cst_2309 %cmp_ext:_(s32) = G_ZEXT %cmp(s1)310 $w0 = COPY %cmp_ext(s32)311 RET_ReallyLR implicit $w0312 313...314---315name: sge_false316tracksRegLiveness: true317body: |318 bb.0:319 liveins: $x0320 321 ; CHECK-LABEL: name: sge_false322 ; CHECK: liveins: $x0323 ; CHECK-NEXT: {{ $}}324 ; CHECK-NEXT: %cmp:_(s1) = G_CONSTANT i1 false325 ; CHECK-NEXT: %cmp_ext:_(s32) = G_ZEXT %cmp(s1)326 ; CHECK-NEXT: $w0 = COPY %cmp_ext(s32)327 ; CHECK-NEXT: RET_ReallyLR implicit $w0328 %ptr:_(p0) = COPY $x0329 %cst:_(s32) = G_CONSTANT i32 -1330 %load_eq_1:_(s32) = G_LOAD %ptr(p0) :: (load (s32), !range !0)331 %cmp:_(s1) = G_ICMP intpred(sge), %cst, %load_eq_1(s32)332 %cmp_ext:_(s32) = G_ZEXT %cmp(s1)333 $w0 = COPY %cmp_ext(s32)334 RET_ReallyLR implicit $w0335 336...337---338name: sgt_false339tracksRegLiveness: true340body: |341 bb.0:342 liveins: $x0343 344 ; CHECK-LABEL: name: sgt_false345 ; CHECK: liveins: $x0346 ; CHECK-NEXT: {{ $}}347 ; CHECK-NEXT: %cmp:_(s1) = G_CONSTANT i1 false348 ; CHECK-NEXT: %cmp_ext:_(s32) = G_ZEXT %cmp(s1)349 ; CHECK-NEXT: $w0 = COPY %cmp_ext(s32)350 ; CHECK-NEXT: RET_ReallyLR implicit $w0351 %ptr:_(p0) = COPY $x0352 %cst:_(s32) = G_CONSTANT i32 1353 %load_eq_1:_(s32) = G_LOAD %ptr(p0) :: (load (s32), !range !0)354 %cmp:_(s1) = G_ICMP intpred(sgt), %cst, %load_eq_1(s32)355 %cmp_ext:_(s32) = G_ZEXT %cmp(s1)356 $w0 = COPY %cmp_ext(s32)357 RET_ReallyLR implicit $w0358 359...360---361name: sle_false362tracksRegLiveness: true363body: |364 bb.0:365 liveins: $x0366 367 ; CHECK-LABEL: name: sle_false368 ; CHECK: liveins: $x0369 ; CHECK-NEXT: {{ $}}370 ; CHECK-NEXT: %cmp:_(s1) = G_CONSTANT i1 false371 ; CHECK-NEXT: %cmp_ext:_(s32) = G_ZEXT %cmp(s1)372 ; CHECK-NEXT: $w0 = COPY %cmp_ext(s32)373 ; CHECK-NEXT: RET_ReallyLR implicit $w0374 %ptr:_(p0) = COPY $x0375 %cst:_(s32) = G_CONSTANT i32 3376 %load_eq_1:_(s32) = G_LOAD %ptr(p0) :: (load (s32), !range !0)377 %cmp:_(s1) = G_ICMP intpred(sle), %cst, %load_eq_1(s32)378 %cmp_ext:_(s32) = G_ZEXT %cmp(s1)379 $w0 = COPY %cmp_ext(s32)380 RET_ReallyLR implicit $w0381 382 383...384---385name: slt_false386tracksRegLiveness: true387body: |388 bb.0:389 liveins: $x0390 391 ; CHECK-LABEL: name: slt_false392 ; CHECK: liveins: $x0393 ; CHECK-NEXT: {{ $}}394 ; CHECK-NEXT: %cmp:_(s1) = G_CONSTANT i1 false395 ; CHECK-NEXT: %cmp_ext:_(s32) = G_ZEXT %cmp(s1)396 ; CHECK-NEXT: $w0 = COPY %cmp_ext(s32)397 ; CHECK-NEXT: RET_ReallyLR implicit $w0398 %ptr:_(p0) = COPY $x0399 %cst:_(s32) = G_CONSTANT i32 2400 %load_eq_1:_(s32) = G_LOAD %ptr(p0) :: (load (s32), !range !0)401 %cmp:_(s1) = G_ICMP intpred(slt), %cst, %load_eq_1(s32)402 %cmp_ext:_(s32) = G_ZEXT %cmp(s1)403 $w0 = COPY %cmp_ext(s32)404 RET_ReallyLR implicit $w0405 406...407---408name: uge_false409tracksRegLiveness: true410body: |411 bb.0:412 liveins: $x0413 414 ; CHECK-LABEL: name: uge_false415 ; CHECK: liveins: $x0416 ; CHECK-NEXT: {{ $}}417 ; CHECK-NEXT: %cmp:_(s1) = G_CONSTANT i1 false418 ; CHECK-NEXT: %cmp_ext:_(s32) = G_ZEXT %cmp(s1)419 ; CHECK-NEXT: $w0 = COPY %cmp_ext(s32)420 ; CHECK-NEXT: RET_ReallyLR implicit $w0421 %ptr:_(p0) = COPY $x0422 %cst:_(s32) = G_CONSTANT i32 0423 %load_eq_1:_(s32) = G_LOAD %ptr(p0) :: (load (s32), !range !0)424 %cmp:_(s1) = G_ICMP intpred(uge), %cst, %load_eq_1(s32)425 %cmp_ext:_(s32) = G_ZEXT %cmp(s1)426 $w0 = COPY %cmp_ext(s32)427 RET_ReallyLR implicit $w0428 429...430---431name: ugt_false432tracksRegLiveness: true433body: |434 bb.0:435 liveins: $x0436 437 ; CHECK-LABEL: name: ugt_false438 ; CHECK: liveins: $x0439 ; CHECK-NEXT: {{ $}}440 ; CHECK-NEXT: %cmp:_(s1) = G_CONSTANT i1 false441 ; CHECK-NEXT: %cmp_ext:_(s32) = G_ZEXT %cmp(s1)442 ; CHECK-NEXT: $w0 = COPY %cmp_ext(s32)443 ; CHECK-NEXT: RET_ReallyLR implicit $w0444 %ptr:_(p0) = COPY $x0445 %cst:_(s32) = G_CONSTANT i32 1446 %load_eq_1:_(s32) = G_LOAD %ptr(p0) :: (load (s32), !range !0)447 %cmp:_(s1) = G_ICMP intpred(ugt), %cst, %load_eq_1(s32)448 %cmp_ext:_(s32) = G_ZEXT %cmp(s1)449 $w0 = COPY %cmp_ext(s32)450 RET_ReallyLR implicit $w0451 452...453---454name: ule_false455tracksRegLiveness: true456body: |457 bb.0:458 liveins: $x0459 460 ; CHECK-LABEL: name: ule_false461 ; CHECK: liveins: $x0462 ; CHECK-NEXT: {{ $}}463 ; CHECK-NEXT: %cmp:_(s1) = G_CONSTANT i1 false464 ; CHECK-NEXT: %cmp_ext:_(s32) = G_ZEXT %cmp(s1)465 ; CHECK-NEXT: $w0 = COPY %cmp_ext(s32)466 ; CHECK-NEXT: RET_ReallyLR implicit $w0467 %ptr:_(p0) = COPY $x0468 %cst:_(s32) = G_CONSTANT i32 -1469 %load_eq_1:_(s32) = G_LOAD %ptr(p0) :: (load (s32), !range !0)470 %cmp:_(s1) = G_ICMP intpred(ule), %cst, %load_eq_1(s32)471 %cmp_ext:_(s32) = G_ZEXT %cmp(s1)472 $w0 = COPY %cmp_ext(s32)473 RET_ReallyLR implicit $w0474 475...476---477name: ult_false478tracksRegLiveness: true479body: |480 bb.0:481 liveins: $x0482 483 ; CHECK-LABEL: name: ult_false484 ; CHECK: liveins: $x0485 ; CHECK-NEXT: {{ $}}486 ; CHECK-NEXT: %cmp:_(s1) = G_CONSTANT i1 false487 ; CHECK-NEXT: %cmp_ext:_(s32) = G_ZEXT %cmp(s1)488 ; CHECK-NEXT: $w0 = COPY %cmp_ext(s32)489 ; CHECK-NEXT: RET_ReallyLR implicit $w0490 %ptr:_(p0) = COPY $x0491 %cst:_(s32) = G_CONSTANT i32 2492 %load_eq_1:_(s32) = G_LOAD %ptr(p0) :: (load (s32), !range !0)493 %cmp:_(s1) = G_ICMP intpred(ule), %cst, %load_eq_1(s32)494 %cmp_ext:_(s32) = G_ZEXT %cmp(s1)495 $w0 = COPY %cmp_ext(s32)496 RET_ReallyLR implicit $w0497 498...499---500name: eq_unknown501tracksRegLiveness: true502body: |503 bb.0:504 liveins: $x0505 506 ; CHECK-LABEL: name: eq_unknown507 ; CHECK: liveins: $x0508 ; CHECK-NEXT: {{ $}}509 ; CHECK-NEXT: %ptr:_(p0) = COPY $x0510 ; CHECK-NEXT: %cst:_(s32) = G_CONSTANT i32 1511 ; CHECK-NEXT: %load_between_1_2:_(s32) = G_LOAD %ptr(p0) :: (load (s32),512 ; CHECK-NEXT: %cmp:_(s1) = G_ICMP intpred(eq), %load_between_1_2(s32), %cst513 ; CHECK-NEXT: %cmp_ext:_(s32) = G_ZEXT %cmp(s1)514 ; CHECK-NEXT: $w0 = COPY %cmp_ext(s32)515 ; CHECK-NEXT: RET_ReallyLR implicit $w0516 %ptr:_(p0) = COPY $x0517 %cst:_(s32) = G_CONSTANT i32 1518 %load_between_1_2:_(s32) = G_LOAD %ptr(p0) :: (load (s32), !range !1)519 %cmp:_(s1) = G_ICMP intpred(eq), %load_between_1_2(s32), %cst520 %cmp_ext:_(s32) = G_ZEXT %cmp(s1)521 $w0 = COPY %cmp_ext(s32)522 RET_ReallyLR implicit $w0523 524...525---526name: ne_unknown527tracksRegLiveness: true528body: |529 bb.0:530 liveins: $x0531 532 ; CHECK-LABEL: name: ne_unknown533 ; CHECK: liveins: $x0534 ; CHECK-NEXT: {{ $}}535 ; CHECK-NEXT: %ptr:_(p0) = COPY $x0536 ; CHECK-NEXT: %cst:_(s32) = G_CONSTANT i32 1537 ; CHECK-NEXT: %load_between_1_2:_(s32) = G_LOAD %ptr(p0) :: (load (s32),538 ; CHECK-NEXT: %cmp:_(s1) = G_ICMP intpred(ne), %load_between_1_2(s32), %cst539 ; CHECK-NEXT: %cmp_ext:_(s32) = G_ZEXT %cmp(s1)540 ; CHECK-NEXT: $w0 = COPY %cmp_ext(s32)541 ; CHECK-NEXT: RET_ReallyLR implicit $w0542 %ptr:_(p0) = COPY $x0543 %cst:_(s32) = G_CONSTANT i32 1544 %load_between_1_2:_(s32) = G_LOAD %ptr(p0) :: (load (s32), !range !1)545 %cmp:_(s1) = G_ICMP intpred(ne), %load_between_1_2(s32), %cst546 %cmp_ext:_(s32) = G_ZEXT %cmp(s1)547 $w0 = COPY %cmp_ext(s32)548 RET_ReallyLR implicit $w0549 550...551---552name: vector_true553tracksRegLiveness: true554body: |555 bb.0:556 liveins: $x0557 ; CHECK-LABEL: name: vector_true558 ; CHECK: liveins: $x0559 ; CHECK-NEXT: {{ $}}560 ; CHECK-NEXT: %cst64:_(s64) = G_CONSTANT i64 1561 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s1) = G_CONSTANT i1 true562 ; CHECK-NEXT: %cmp:_(<2 x s1>) = G_BUILD_VECTOR [[C]](s1), [[C]](s1)563 ; CHECK-NEXT: %extract:_(s1) = G_EXTRACT_VECTOR_ELT %cmp(<2 x s1>), %cst64(s64)564 ; CHECK-NEXT: %extract_ext:_(s32) = G_ZEXT %extract(s1)565 ; CHECK-NEXT: $w0 = COPY %extract_ext(s32)566 ; CHECK-NEXT: RET_ReallyLR implicit $w0567 %ptr:_(p0) = COPY $x0568 %cst:_(s32) = G_CONSTANT i32 1569 %cst64:_(s64) = G_CONSTANT i64 1570 %bv:_(<2 x s32>) = G_BUILD_VECTOR %cst, %cst571 %cmp:_(<2 x s1>) = G_ICMP intpred(eq), %bv(<2 x s32>), %bv572 %extract:_(s1) = G_EXTRACT_VECTOR_ELT %cmp(<2 x s1>), %cst64(s64)573 %extract_ext:_(s32) = G_ZEXT %extract(s1)574 $w0 = COPY %extract_ext(s32)575 RET_ReallyLR implicit $w0576 577...578---579name: vector_false580tracksRegLiveness: true581body: |582 bb.0:583 liveins: $x0584 ; CHECK-LABEL: name: vector_false585 ; CHECK: liveins: $x0586 ; CHECK-NEXT: {{ $}}587 ; CHECK-NEXT: %cst64:_(s64) = G_CONSTANT i64 1588 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s1) = G_CONSTANT i1 false589 ; CHECK-NEXT: %cmp:_(<2 x s1>) = G_BUILD_VECTOR [[C]](s1), [[C]](s1)590 ; CHECK-NEXT: %extract:_(s1) = G_EXTRACT_VECTOR_ELT %cmp(<2 x s1>), %cst64(s64)591 ; CHECK-NEXT: %extract_ext:_(s32) = G_ZEXT %extract(s1)592 ; CHECK-NEXT: $w0 = COPY %extract_ext(s32)593 ; CHECK-NEXT: RET_ReallyLR implicit $w0594 %ptr:_(p0) = COPY $x0595 %cst:_(s32) = G_CONSTANT i32 1596 %cst64:_(s64) = G_CONSTANT i64 1597 %bv:_(<2 x s32>) = G_BUILD_VECTOR %cst, %cst598 %cmp:_(<2 x s1>) = G_ICMP intpred(ne), %bv(<2 x s32>), %bv599 %extract:_(s1) = G_EXTRACT_VECTOR_ELT %cmp(<2 x s1>), %cst64(s64)600 %extract_ext:_(s32) = G_ZEXT %extract(s1)601 $w0 = COPY %extract_ext(s32)602 RET_ReallyLR implicit $w0603