; RUN: opt < %s -instcombine | llvm-dis

; This used to crash trying to do a double-to-pointer conversion
define i32 @bar() {
entry:
	%retval = alloca i32, align 4		; <i32*> [#uses=1]
	%tmp = call i32 (...) bitcast (i32 (i8*)* @f to i32 (...)*)( double 3.000000e+00 )		; <i32> [#uses=0]
	br label %return

return:		; preds = %entry
	%retval1 = load i32, i32* %retval		; <i32> [#uses=1]
	ret i32 %retval1
}

define i32 @f(i8* %p) {
entry:
	%p_addr = alloca i8*		; <i8**> [#uses=1]
	%retval = alloca i32, align 4		; <i32*> [#uses=1]
	store i8* %p, i8** %p_addr
	br label %return

return:		; preds = %entry
	%retval1 = load i32, i32* %retval		; <i32> [#uses=1]
	ret i32 %retval1
}
