; RUN: opt < %s -simplifycfg -disable-output
; PR584
@g_38098584 = external global i32		; <i32*> [#uses=1]
@g_60187400 = external global i32		; <i32*> [#uses=1]
@g_59182229 = external global i32		; <i32*> [#uses=2]

define i32 @_Z13func_26556482h(i8 %l_88173906) {
entry:
	%tmp.1 = bitcast i8 %l_88173906 to i8		; <i8> [#uses=2]
	%tmp.3 = icmp eq i8 %l_88173906, 0		; <i1> [#uses=1]
	br i1 %tmp.3, label %else.0, label %then.0
then.0:		; preds = %entry
	%tmp.5 = icmp eq i8 %l_88173906, 0		; <i1> [#uses=1]
	br i1 %tmp.5, label %else.1, label %then.1
then.1:		; preds = %then.0
	br label %return
else.1:		; preds = %then.0
	br label %loopentry.0
loopentry.0:		; preds = %no_exit.0, %else.1
	%i.0.1 = phi i32 [ 0, %else.1 ], [ %inc.0, %no_exit.0 ]		; <i32> [#uses=2]
	%tmp.9 = icmp sgt i32 %i.0.1, 99		; <i1> [#uses=1]
	br i1 %tmp.9, label %endif.0, label %no_exit.0
no_exit.0:		; preds = %loopentry.0
	%inc.0 = add i32 %i.0.1, 1		; <i32> [#uses=1]
	br label %loopentry.0
else.0:		; preds = %entry
	%tmp.12 = sext i8 %tmp.1 to i32		; <i32> [#uses=1]
	br label %return
endif.0:		; preds = %loopentry.0
	%tmp.14 = sext i8 %tmp.1 to i32		; <i32> [#uses=1]
	%tmp.16 = zext i8 %l_88173906 to i32		; <i32> [#uses=1]
	%tmp.17 = icmp sgt i32 %tmp.14, %tmp.16		; <i1> [#uses=1]
	%tmp.19 = load i32, i32* @g_59182229		; <i32> [#uses=2]
	br i1 %tmp.17, label %cond_true, label %cond_false
cond_true:		; preds = %endif.0
	%tmp.20 = icmp ne i32 %tmp.19, 1		; <i1> [#uses=1]
	br label %cond_continue
cond_false:		; preds = %endif.0
	%tmp.22 = icmp ne i32 %tmp.19, 0		; <i1> [#uses=1]
	br label %cond_continue
cond_continue:		; preds = %cond_false, %cond_true
	%mem_tmp.0 = phi i1 [ %tmp.20, %cond_true ], [ %tmp.22, %cond_false ]		; <i1> [#uses=1]
	br i1 %mem_tmp.0, label %then.2, label %else.2
then.2:		; preds = %cond_continue
	%tmp.25 = zext i8 %l_88173906 to i32		; <i32> [#uses=1]
	br label %return
else.2:		; preds = %cond_continue
	br label %loopentry.1
loopentry.1:		; preds = %endif.3, %else.2
	%i.1.1 = phi i32 [ 0, %else.2 ], [ %inc.3, %endif.3 ]		; <i32> [#uses=2]
	%i.3.2 = phi i32 [ undef, %else.2 ], [ %i.3.0, %endif.3 ]		; <i32> [#uses=2]
	%l_88173906_addr.1 = phi i8 [ %l_88173906, %else.2 ], [ %l_88173906_addr.0, %endif.3 ]		; <i8> [#uses=3]
	%tmp.29 = icmp sgt i32 %i.1.1, 99		; <i1> [#uses=1]
	br i1 %tmp.29, label %endif.2, label %no_exit.1
no_exit.1:		; preds = %loopentry.1
	%tmp.30 = load i32, i32* @g_38098584		; <i32> [#uses=1]
	%tmp.31 = icmp eq i32 %tmp.30, 0		; <i1> [#uses=1]
	br i1 %tmp.31, label %else.3, label %then.3
then.3:		; preds = %no_exit.1
	br label %endif.3
else.3:		; preds = %no_exit.1
	br i1 false, label %else.4, label %then.4
then.4:		; preds = %else.3
	br label %endif.3
else.4:		; preds = %else.3
	br i1 false, label %else.5, label %then.5
then.5:		; preds = %else.4
	store i32 -1004318825, i32* @g_59182229
	br label %return
else.5:		; preds = %else.4
	br label %loopentry.3
loopentry.3:		; preds = %then.7, %else.5
	%i.3.3 = phi i32 [ 0, %else.5 ], [ %inc.2, %then.7 ]		; <i32> [#uses=3]
	%tmp.55 = icmp sgt i32 %i.3.3, 99		; <i1> [#uses=1]
	br i1 %tmp.55, label %endif.3, label %no_exit.3
no_exit.3:		; preds = %loopentry.3
	%tmp.57 = icmp eq i8 %l_88173906_addr.1, 0		; <i1> [#uses=1]
	br i1 %tmp.57, label %else.7, label %then.7
then.7:		; preds = %no_exit.3
	store i32 16239, i32* @g_60187400
	%inc.2 = add i32 %i.3.3, 1		; <i32> [#uses=1]
	br label %loopentry.3
else.7:		; preds = %no_exit.3
	br label %return
endif.3:		; preds = %loopentry.3, %then.4, %then.3
	%i.3.0 = phi i32 [ %i.3.2, %then.3 ], [ %i.3.2, %then.4 ], [ %i.3.3, %loopentry.3 ]		; <i32> [#uses=1]
	%l_88173906_addr.0 = phi i8 [ 100, %then.3 ], [ %l_88173906_addr.1, %then.4 ], [ %l_88173906_addr.1, %loopentry.3 ]		; <i8> [#uses=1]
	%inc.3 = add i32 %i.1.1, 1		; <i32> [#uses=1]
	br label %loopentry.1
endif.2:		; preds = %loopentry.1
	br label %return
return:		; preds = %endif.2, %else.7, %then.5, %then.2, %else.0, %then.1
	%result.0 = phi i32 [ 1624650671, %then.1 ], [ %tmp.25, %then.2 ], [ 3379, %then.5 ], [ 52410, %else.7 ], [ -1526438411, %endif.2 ], [ %tmp.12, %else.0 ]		; <i32> [#uses=1]
	ret i32 %result.0
}
