; RUN: llc < %s -march=x86 -mattr=+sse2
	%struct.foo = type opaque

define fastcc i32 @test(%struct.foo* %v, %struct.foo* %vi) {
	br i1 false, label %ilog2.exit, label %cond_true.i

cond_true.i:		; preds = %0
	ret i32 0

ilog2.exit:		; preds = %0
	%tmp24.i = load i32, i32* null		; <i32> [#uses=1]
	%tmp13.i12.i = tail call double @ldexp( double 0.000000e+00, i32 0 )		; <double> [#uses=1]
	%tmp13.i13.i = fptrunc double %tmp13.i12.i to float		; <float> [#uses=1]
	%tmp11.s = load i32, i32* null		; <i32> [#uses=1]
	%tmp11.i = bitcast i32 %tmp11.s to i32		; <i32> [#uses=1]
	%n.i = bitcast i32 %tmp24.i to i32		; <i32> [#uses=1]
	%tmp13.i7 = mul i32 %tmp11.i, %n.i		; <i32> [#uses=1]
	%tmp.i8 = tail call i8* @calloc( i32 %tmp13.i7, i32 4 )		; <i8*> [#uses=0]
	br i1 false, label %bb224.preheader.i, label %bb.i

bb.i:		; preds = %ilog2.exit
	ret i32 0

bb224.preheader.i:		; preds = %ilog2.exit
	%tmp165.i = fpext float %tmp13.i13.i to double		; <double> [#uses=0]
	ret i32 0
}

declare i8* @calloc(i32, i32)

declare double @ldexp(double, i32)
