; RUN: llc < %s -march=arm64

; The target lowering for integer comparisons was replacing some DAG nodes
; during operation legalization, which resulted in dangling pointers,
; cycles in DAGs, and eventually crashes.  This is the testcase for
; one of those crashes. (rdar://10653656)

define void @test(i1 zeroext %IsArrow) nounwind ssp align 2 {
entry:
  br i1 undef, label %return, label %lor.lhs.false

lor.lhs.false:
  br i1 undef, label %return, label %if.end

if.end:
  %tmp.i = load i64* undef, align 8
  %and.i.i.i = and i64 %tmp.i, -16
  br i1 %IsArrow, label %if.else_crit_edge, label %if.end32

if.else_crit_edge:
  br i1 undef, label %if.end32, label %return

if.end32:
  %0 = icmp ult i32 undef, 3
  %1 = zext i64 %tmp.i to i320
  %.pn.v = select i1 %0, i320 128, i320 64
  %.pn = shl i320 %1, %.pn.v
  %ins346392 = or i320 %.pn, 0
  store i320 %ins346392, i320* undef, align 8
  br i1 undef, label %sw.bb.i.i, label %exit

sw.bb.i.i:
  unreachable

exit:
  unreachable

return:
  ret void
}
