; RUN: opt < %s -mem2reg -instcombine -S | grep store
; PR590


define void @zero(i8* %p, i32 %n) {
entry:
	%p_addr = alloca i8*		; <i8**> [#uses=2]
	%n_addr = alloca i32		; <i32*> [#uses=2]
	%i = alloca i32		; <i32*> [#uses=6]
	%out = alloca i32		; <i32*> [#uses=2]
	%undef = alloca i32		; <i32*> [#uses=2]
	store i8* %p, i8** %p_addr
	store i32 %n, i32* %n_addr
	store i32 0, i32* %i
	br label %loopentry
loopentry:		; preds = %endif, %entry
	%tmp.0 = load i32, i32* %n_addr		; <i32> [#uses=1]
	%tmp.1 = add i32 %tmp.0, 1		; <i32> [#uses=1]
	%tmp.2 = load i32, i32* %i		; <i32> [#uses=1]
	%tmp.3 = icmp sgt i32 %tmp.1, %tmp.2		; <i1> [#uses=2]
	%tmp.4 = zext i1 %tmp.3 to i32		; <i32> [#uses=0]
	br i1 %tmp.3, label %no_exit, label %return
no_exit:		; preds = %loopentry
	%tmp.5 = load i32, i32* %undef		; <i32> [#uses=1]
	store i32 %tmp.5, i32* %out
	store i32 0, i32* %undef
	%tmp.6 = load i32, i32* %i		; <i32> [#uses=1]
	%tmp.7 = icmp sgt i32 %tmp.6, 0		; <i1> [#uses=2]
	%tmp.8 = zext i1 %tmp.7 to i32		; <i32> [#uses=0]
	br i1 %tmp.7, label %then, label %endif
then:		; preds = %no_exit
	%tmp.9 = load i8*, i8** %p_addr		; <i8*> [#uses=1]
	%tmp.10 = load i32, i32* %i		; <i32> [#uses=1]
	%tmp.11 = sub i32 %tmp.10, 1		; <i32> [#uses=1]
	%tmp.12 = getelementptr i8, i8* %tmp.9, i32 %tmp.11		; <i8*> [#uses=1]
	%tmp.13 = load i32, i32* %out		; <i32> [#uses=1]
	%tmp.14 = trunc i32 %tmp.13 to i8		; <i8> [#uses=1]
	store i8 %tmp.14, i8* %tmp.12
	br label %endif
endif:		; preds = %then, %no_exit
	%tmp.15 = load i32, i32* %i		; <i32> [#uses=1]
	%inc = add i32 %tmp.15, 1		; <i32> [#uses=1]
	store i32 %inc, i32* %i
	br label %loopentry
return:		; preds = %loopentry
	ret void
}
