; RUN: opt < %s -loop-reduce -disable-output
; Test to make sure that loop-reduce never crashes on IV's 
; with different types but identical strides.

define void @foo() {
entry:
	br label %no_exit
no_exit:		; preds = %no_exit, %entry
	%indvar = phi i32 [ 0, %entry ], [ %indvar.next, %no_exit ]		; <i32> [#uses=3]
	%indvar.upgrd.1 = trunc i32 %indvar to i16		; <i16> [#uses=1]
	%X.0.0 = mul i16 %indvar.upgrd.1, 1234		; <i16> [#uses=1]
	%tmp. = mul i32 %indvar, 1234		; <i32> [#uses=1]
	%tmp.5 = sext i16 %X.0.0 to i32		; <i32> [#uses=1]
	%tmp.3 = call i32 (...)* @bar( i32 %tmp.5, i32 %tmp. )		; <i32> [#uses=0]
	%tmp.0 = call i1 @pred( )		; <i1> [#uses=1]
	%indvar.next = add i32 %indvar, 1		; <i32> [#uses=1]
	br i1 %tmp.0, label %return, label %no_exit
return:		; preds = %no_exit
	ret void
}

declare i1 @pred()

declare i32 @bar(...)

