; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -mcpu=ppc -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(...)
