; 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]
	"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
	%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* %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]
	"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
	store i8* %p, i8** %p_addr
	br label %return

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