; RUN: opt < %s -loop-reduce -S | \
; RUN:   grep "add i32 %indvar630.ui, 1"
;
; Make sure that the use of the IV outside of the loop (the store) uses the 
; post incremented value of the IV, not the preincremented value.  This 
; prevents the loop from having to keep the post and pre-incremented value
; around for the duration of the loop, adding a copy and an extra register
; to the loop.

declare i1 @pred(i32)

define void @test(ptr %nbeaux_.0__558, ptr %i_.16574) {
then.0:
	br label %no_exit.2
no_exit.2:		; preds = %no_exit.2, %then.0
	%indvar630.ui = phi i32 [ 0, %then.0 ], [ %indvar.next631, %no_exit.2 ]		; <i32> [#uses=3]
	%indvar630 = bitcast i32 %indvar630.ui to i32		; <i32> [#uses=2]
	%gep.upgrd.1 = zext i32 %indvar630.ui to i64		; <i64> [#uses=1]
	%tmp.38 = getelementptr [700 x i32], ptr %nbeaux_.0__558, i32 0, i64 %gep.upgrd.1		; <ptr> [#uses=1]
	store i32 0, ptr %tmp.38
	%inc.2 = add i32 %indvar630, 2		; <i32> [#uses=1]
	%tmp.34 = call i1 @pred( i32 %indvar630 )		; <i1> [#uses=1]
	%indvar.next631 = add i32 %indvar630.ui, 1		; <i32> [#uses=1]
	br i1 %tmp.34, label %no_exit.2, label %loopexit.2.loopexit
loopexit.2.loopexit:		; preds = %no_exit.2
	store i32 %inc.2, ptr %i_.16574
	ret void
}

