[X86] Do not custom lower UINT_TO_FP when the target type does not

match the custom lowering.

<rdar://problem/19026326>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222489 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Quentin Colombet
2014-11-21 00:47:19 +00:00
parent c8ef21f1b1
commit c91f34ae54
2 changed files with 16 additions and 0 deletions

View File

@@ -154,3 +154,14 @@ define <8 x float> @test2(<8 x i32> %A) nounwind {
%C = uitofp <8 x i32> %A to <8 x float>
ret <8 x float> %C
}
define <4 x double> @test3(<4 x i32> %arg) {
; CHECK-LABEL: test3:
; This test used to crash because we were custom lowering it as if it was
; a conversion between <4 x i32> and <4 x float>.
; AVX: vcvtdq2pd
; AVX2: vcvtdq2pd
; CHECK: retq
%tmp = uitofp <4 x i32> %arg to <4 x double>
ret <4 x double> %tmp
}