; RUN: llvm-as < %s | llc

define i8 @test1(double %X) {
	%tmp.1 = fptosi double %X to i8		; <i8> [#uses=1]
	ret i8 %tmp.1
}

define i16 @test2(double %X) {
	%tmp.1 = fptosi double %X to i16		; <i16> [#uses=1]
	ret i16 %tmp.1
}

define i32 @test3(double %X) {
	%tmp.1 = fptosi double %X to i32		; <i32> [#uses=1]
	ret i32 %tmp.1
}

define i64 @test4(double %X) {
	%tmp.1 = fptosi double %X to i64		; <i64> [#uses=1]
	ret i64 %tmp.1
}

define i8 @test1u(double %X) {
	%tmp.1 = fptoui double %X to i8		; <i8> [#uses=1]
	ret i8 %tmp.1
}

define i16 @test2u(double %X) {
	%tmp.1 = fptoui double %X to i16		; <i16> [#uses=1]
	ret i16 %tmp.1
}

define i32 @test3u(double %X) {
	%tmp.1 = fptoui double %X to i32		; <i32> [#uses=1]
	ret i32 %tmp.1
}

define i64 @test4u(double %X) {
	%tmp.1 = fptoui double %X to i64		; <i64> [#uses=1]
	ret i64 %tmp.1
}

define i8 @test1f(float %X) {
	%tmp.1 = fptosi float %X to i8		; <i8> [#uses=1]
	ret i8 %tmp.1
}

define i16 @test2f(float %X) {
	%tmp.1 = fptosi float %X to i16		; <i16> [#uses=1]
	ret i16 %tmp.1
}

define i32 @test3f(float %X) {
	%tmp.1 = fptosi float %X to i32		; <i32> [#uses=1]
	ret i32 %tmp.1
}

define i64 @test4f(float %X) {
	%tmp.1 = fptosi float %X to i64		; <i64> [#uses=1]
	ret i64 %tmp.1
}

define i8 @test1uf(float %X) {
	%tmp.1 = fptoui float %X to i8		; <i8> [#uses=1]
	ret i8 %tmp.1
}

define i16 @test2uf(float %X) {
	%tmp.1 = fptoui float %X to i16		; <i16> [#uses=1]
	ret i16 %tmp.1
}

define i32 @test3uf(float %X) {
	%tmp.1 = fptoui float %X to i32		; <i32> [#uses=1]
	ret i32 %tmp.1
}

define i64 @test4uf(float %X) {
	%tmp.1 = fptoui float %X to i64		; <i64> [#uses=1]
	ret i64 %tmp.1
}
