; LoopSimplify is breaking LICM on this testcase because the exit blocks from
; the loop are reachable from more than just the exit nodes: the exit blocks
; have predecessors from outside of the loop!
;
; This is distilled from a monsterous crafty example.

; RUN: opt < %s -licm -disable-output


@G = weak global i32 0		; <i32*> [#uses=7]

define i32 @main() {
entry:
	store i32 123, i32* @G
	br label %loopentry.i
loopentry.i:		; preds = %endif.1.i, %entry
	%tmp.0.i = load i32, i32* @G		; <i32> [#uses=1]
	%tmp.1.i = icmp eq i32 %tmp.0.i, 123		; <i1> [#uses=1]
	br i1 %tmp.1.i, label %Out.i, label %endif.0.i
endif.0.i:		; preds = %loopentry.i
	%tmp.3.i = load i32, i32* @G		; <i32> [#uses=1]
	%tmp.4.i = icmp eq i32 %tmp.3.i, 126		; <i1> [#uses=1]
	br i1 %tmp.4.i, label %ExitBlock.i, label %endif.1.i
endif.1.i:		; preds = %endif.0.i
	%tmp.6.i = load i32, i32* @G		; <i32> [#uses=1]
	%inc.i = add i32 %tmp.6.i, 1		; <i32> [#uses=1]
	store i32 %inc.i, i32* @G
	br label %loopentry.i
Out.i:		; preds = %loopentry.i
	store i32 0, i32* @G
	br label %ExitBlock.i
ExitBlock.i:		; preds = %Out.i, %endif.0.i
	%tmp.7.i = load i32, i32* @G		; <i32> [#uses=1]
	ret i32 %tmp.7.i
}

