# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -debugify-and-strip-all-safe -O0 -mtriple=aarch64-unknown-unknown -verify-machineinstrs -run-pass=legalizer %s -o - | FileCheck %s
--- |
  target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"

  define void @snork() {
  bb:
    br label %bb1

  bb1:                                              ; preds = %bb3, %bb
    %lsr.iv = phi i16* [ %scevgep, %bb3 ], [ undef, %bb ]
    %tmp = phi i1 [ %tmp9, %bb3 ], [ undef, %bb ]
    br i1 %tmp, label %bb10, label %bb3

  bb3:                                              ; preds = %bb1
    %tmp5 = getelementptr i16, i16* null, i64 2
    %tmp6 = load i16, i16* %lsr.iv, align 2, !tbaa !0
    %tmp7 = icmp eq i16 %tmp6, -1
    %tmp8 = load i16, i16* %tmp5, align 2, !tbaa !0
    %tmp9 = icmp eq i16 %tmp8, -1
    %scevgep = getelementptr i16, i16* %lsr.iv, i64 2
    br i1 %tmp7, label %bb10, label %bb1

  bb10:                                             ; preds = %bb3, %bb1
    ret void
  }

  !0 = !{!1, !1, i64 0}
  !1 = !{!"short", !2, i64 0}
  !2 = !{!"omnipotent char", !3, i64 0}
  !3 = !{!"Simple C/C++ TBAA"}

...
---
name:            snork
alignment:       16
tracksRegLiveness: true
frameInfo:
  maxAlignment:    1
body:             |
  ; CHECK-LABEL: name: snork
  ; CHECK: bb.0.bb:
  ; CHECK:   successors: %bb.1(0x80000000)
  ; CHECK:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0
  ; CHECK:   [[INTTOPTR:%[0-9]+]]:_(p0) = G_INTTOPTR [[C]](s64)
  ; CHECK:   [[DEF:%[0-9]+]]:_(p0) = G_IMPLICIT_DEF
  ; CHECK:   [[DEF1:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF
  ; CHECK: bb.1.bb1:
  ; CHECK:   successors: %bb.3(0x40000000), %bb.2(0x40000000)
  ; CHECK:   [[PHI:%[0-9]+]]:_(p0) = G_PHI %6(p0), %bb.2, [[DEF]](p0), %bb.0
  ; CHECK:   [[PHI1:%[0-9]+]]:_(s16) = G_PHI %20(s16), %bb.2, [[DEF1]](s16), %bb.0
  ; CHECK:   [[TRUNC:%[0-9]+]]:_(s1) = G_TRUNC [[PHI1]](s16)
  ; CHECK:   G_BRCOND [[TRUNC]](s1), %bb.3
  ; CHECK: bb.2.bb3:
  ; CHECK:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
  ; CHECK:   [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 4
  ; CHECK:   [[GEP:%[0-9]+]]:_(p0) = G_PTR_ADD [[INTTOPTR]], [[C1]](s64)
  ; CHECK:   [[LOAD:%[0-9]+]]:_(s16) = G_LOAD [[PHI]](p0) :: (load 2 from %ir.lsr.iv)
  ; CHECK:   [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[LOAD]](s16)
  ; CHECK:   [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
  ; CHECK:   [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[ZEXT]](s32), [[C2]]
  ; CHECK:   [[TRUNC1:%[0-9]+]]:_(s1) = G_TRUNC [[ICMP]](s32)
  ; CHECK:   [[LOAD1:%[0-9]+]]:_(s16) = G_LOAD [[GEP]](p0) :: (load 2 from %ir.tmp5)
  ; CHECK:   [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[LOAD1]](s16)
  ; CHECK:   [[COPY:%[0-9]+]]:_(s32) = COPY [[C2]](s32)
  ; CHECK:   [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[ZEXT1]](s32), [[COPY]]
  ; CHECK:   [[GEP1:%[0-9]+]]:_(p0) = G_PTR_ADD [[PHI]], [[C1]](s64)
  ; CHECK:   [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[ICMP1]](s32)
  ; CHECK:   G_BRCOND [[TRUNC1]](s1), %bb.3
  ; CHECK:   G_BR %bb.1
  ; CHECK: bb.3.bb10:
  ; CHECK:   RET_ReallyLR
  bb.1.bb:
    %3:_(s64) = G_CONSTANT i64 0
    %2:_(p0) = G_INTTOPTR %3(s64)
    %7:_(s16) = G_CONSTANT i16 -1
    %12:_(p0) = G_IMPLICIT_DEF
    %13:_(s1) = G_IMPLICIT_DEF

  bb.2.bb1:
    %0:_(p0) = G_PHI %11(p0), %bb.3, %12(p0), %bb.1
    %1:_(s1) = G_PHI %10(s1), %bb.3, %13(s1), %bb.1
    G_BRCOND %1(s1), %bb.4

  bb.3.bb3:
    %4:_(s64) = G_CONSTANT i64 4
    %5:_(p0) = G_PTR_ADD %2, %4(s64)
    %6:_(s16) = G_LOAD %0(p0) :: (load 2 from %ir.lsr.iv)
    %8:_(s1) = G_ICMP intpred(eq), %6(s16), %7
    %9:_(s16) = G_LOAD %5(p0) :: (load 2 from %ir.tmp5)
    %10:_(s1) = G_ICMP intpred(eq), %9(s16), %7
    %11:_(p0) = G_PTR_ADD %0, %4(s64)
    G_BRCOND %8(s1), %bb.4
    G_BR %bb.2

  bb.4.bb10:
    RET_ReallyLR

...
