; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -disable-output
; PR 2777
@g_103 = common global i32 0		; <i32*> [#uses=1]

define i32 @func_127(i32 %p_129) nounwind {
entry:
	load i32, i32* @g_103, align 4		; <i32>:0 [#uses=1]
	icmp eq i32 %0, 0		; <i1>:1 [#uses=2]
	br i1 %1, label %bb6.preheader, label %entry.return_crit_edge

entry.return_crit_edge:		; preds = %entry
	br label %return

bb6.preheader:		; preds = %entry
	br i1 %1, label %bb6.preheader.split.us, label %bb6.preheader.split

bb6.preheader.split.us:		; preds = %bb6.preheader
	br label %return.loopexit.split

bb6.preheader.split:		; preds = %bb6.preheader
	br label %bb6

bb6:		; preds = %bb17.bb6_crit_edge, %bb6.preheader.split
	%indvar35 = phi i32 [ 0, %bb6.preheader.split ], [ %indvar.next36, %bb17.bb6_crit_edge ]		; <i32> [#uses=1]
	%p_129_addr.3.reg2mem.0 = phi i32 [ %p_129_addr.2, %bb17.bb6_crit_edge ], [ %p_129, %bb6.preheader.split ]		; <i32> [#uses=3]
	icmp eq i32 %p_129_addr.3.reg2mem.0, 0		; <i1>:2 [#uses=1]
	br i1 %2, label %bb6.bb17_crit_edge, label %bb8

bb6.bb17_crit_edge:		; preds = %bb6
	br label %bb17

bb8:		; preds = %bb6
	br label %bb13

bb13:		; preds = %bb8
	br label %bb17

bb17:		; preds = %bb13, %bb6.bb17_crit_edge
	%p_129_addr.2 = phi i32 [ %p_129_addr.3.reg2mem.0, %bb13 ], [ %p_129_addr.3.reg2mem.0, %bb6.bb17_crit_edge ]		; <i32> [#uses=1]
	%indvar.next36 = add i32 %indvar35, 1		; <i32> [#uses=2]
	%exitcond37 = icmp eq i32 %indvar.next36, -1		; <i1> [#uses=1]
	br i1 %exitcond37, label %return.loopexit, label %bb17.bb6_crit_edge

bb17.bb6_crit_edge:		; preds = %bb17
	br label %bb6

return.loopexit:		; preds = %bb17
	br label %return.loopexit.split

return.loopexit.split:		; preds = %return.loopexit, %bb6.preheader.split.us
	br label %return

return:		; preds = %return.loopexit.split, %entry.return_crit_edge
	ret i32 1
}

define i32 @func_135(i8 zeroext %p_137, i32 %p_138, i32 %p_140) nounwind {
entry:
	ret i32 undef
}
