; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -simplifycfg-require-and-preserve-domtree=1 < %s | FileCheck %s
;; Formerly crashed, see PR 1508
target datalayout = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f128:64:128"
target triple = "powerpc64-unknown-linux-gnu"
	%struct.Range = type { i64, i64 }

define void @Bork(i64 %range.0.0, i64 %range.0.1, i64 %size) personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: Bork:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    mflr 0
; CHECK-NEXT:    std 31, -8(1)
; CHECK-NEXT:    stdu 1, -176(1)
; CHECK-NEXT:    std 0, 192(1)
; CHECK-NEXT:    .cfi_def_cfa_offset 176
; CHECK-NEXT:    .cfi_offset r31, -8
; CHECK-NEXT:    .cfi_offset lr, 16
; CHECK-NEXT:    mr 31, 1
; CHECK-NEXT:    .cfi_def_cfa_register r31
; CHECK-NEXT:    .cfi_offset r27, -40
; CHECK-NEXT:    .cfi_offset r28, -32
; CHECK-NEXT:    .cfi_offset r29, -24
; CHECK-NEXT:    .cfi_offset r30, -16
; CHECK-NEXT:    std 29, 152(31) # 8-byte Folded Spill
; CHECK-NEXT:    mr 29, 3
; CHECK-NEXT:    rldic 3, 5, 3, 29
; CHECK-NEXT:    std 27, 136(31) # 8-byte Folded Spill
; CHECK-NEXT:    std 30, 160(31) # 8-byte Folded Spill
; CHECK-NEXT:    mr 30, 4
; CHECK-NEXT:    addi 3, 3, 15
; CHECK-NEXT:    rldicl 3, 3, 60, 4
; CHECK-NEXT:    mr 27, 1
; CHECK-NEXT:    rldicl 3, 3, 4, 28
; CHECK-NEXT:    addi 4, 31, 176
; CHECK-NEXT:    neg 3, 3
; CHECK-NEXT:    std 28, 144(31) # 8-byte Folded Spill
; CHECK-NEXT:    stdux 4, 1, 3
; CHECK-NEXT:    addi 3, 1, 112
; CHECK-NEXT:  .Ltmp0:
; CHECK-NEXT:    bl Foo
; CHECK-NEXT:    nop
; CHECK-NEXT:  .Ltmp1:
; CHECK-NEXT:  # %bb.1: # %bb30.preheader
; CHECK-NEXT:    addi 28, 31, 120
; CHECK-NEXT:    cmpldi 30, 0
; CHECK-NEXT:    beq 0, .LBB0_4
; CHECK-NEXT:  .LBB0_2: # %cond_true
; CHECK-NEXT:    #
; CHECK-NEXT:  .Ltmp3:
; CHECK-NEXT:    mr 3, 29
; CHECK-NEXT:    mr 4, 28
; CHECK-NEXT:    bl Bar
; CHECK-NEXT:    nop
; CHECK-NEXT:  .Ltmp4:
; CHECK-NEXT:  # %bb.3: # %invcont23
; CHECK-NEXT:    #
; CHECK-NEXT:    ld 3, 128(31)
; CHECK-NEXT:    sub 30, 30, 3
; CHECK-NEXT:    cmpldi 30, 0
; CHECK-NEXT:    bne 0, .LBB0_2
; CHECK-NEXT:  .LBB0_4: # %cleanup
; CHECK-NEXT:    ld 30, 160(31) # 8-byte Folded Reload
; CHECK-NEXT:    ld 29, 152(31) # 8-byte Folded Reload
; CHECK-NEXT:    ld 28, 144(31) # 8-byte Folded Reload
; CHECK-NEXT:    ld 27, 136(31) # 8-byte Folded Reload
; CHECK-NEXT:    ld 1, 0(1)
; CHECK-NEXT:    ld 0, 16(1)
; CHECK-NEXT:    ld 31, -8(1)
; CHECK-NEXT:    mtlr 0
; CHECK-NEXT:    blr
; CHECK-NEXT:  .LBB0_5: # %unwind.loopexit.split-lp
; CHECK-NEXT:  .Ltmp2:
; CHECK-NEXT:    b .LBB0_7
; CHECK-NEXT:  .LBB0_6: # %unwind.loopexit
; CHECK-NEXT:  .Ltmp5:
; CHECK-NEXT:  .LBB0_7: # %unwind
; CHECK-NEXT:    ld 4, 0(1)
; CHECK-NEXT:    mr 1, 27
; CHECK-NEXT:    std 4, 0(1)
; CHECK-NEXT:    bl _Unwind_Resume
; CHECK-NEXT:    nop
entry:
	%effectiveRange = alloca %struct.Range, align 8		; <ptr> [#uses=2]
	%tmp4 = call ptr @llvm.stacksave()		; <ptr> [#uses=1]
	%size1 = trunc i64 %size to i32		; <i32> [#uses=1]
	%tmp17 = alloca ptr, i32 %size1		; <ptr> [#uses=1]
	invoke void @Foo(ptr %tmp17)
			to label %bb30.preheader unwind label %unwind

bb30.preheader:		; preds = %entry
	%tmp26 = getelementptr %struct.Range, ptr %effectiveRange, i64 0, i32 1		; <ptr> [#uses=1]
	br label %bb30

unwind:		; preds = %cond_true, %entry
        %exn = landingpad {ptr, i32}
                 cleanup
	call void @llvm.stackrestore(ptr %tmp4)
        resume { ptr, i32 } %exn

invcont23:		; preds = %cond_true
	%tmp27 = load i64, ptr %tmp26, align 8		; <i64> [#uses=1]
	%tmp28 = sub i64 %range_addr.1.0, %tmp27		; <i64> [#uses=1]
	br label %bb30

bb30:		; preds = %invcont23, %bb30.preheader
	%range_addr.1.0 = phi i64 [ %tmp28, %invcont23 ], [ %range.0.1, %bb30.preheader ]		; <i64> [#uses=2]
	%tmp33 = icmp eq i64 %range_addr.1.0, 0		; <i1> [#uses=1]
	br i1 %tmp33, label %cleanup, label %cond_true

cond_true:		; preds = %bb30
	invoke void @Bar(i64 %range.0.0, ptr %effectiveRange)
			to label %invcont23 unwind label %unwind

cleanup:		; preds = %bb30
	ret void
}

declare ptr @llvm.stacksave() nounwind

declare void @Foo(ptr)

declare void @Bar(i64, ptr)

declare void @llvm.stackrestore(ptr) nounwind

declare i32 @__gxx_personality_v0(...)
