]> granicus.if.org Git - llvm/commitdiff
[X86] Disable custom type legalization for v2i32/v4i16/v8i8->f64 bitcast.
authorCraig Topper <craig.topper@intel.com>
Thu, 15 Aug 2019 05:51:54 +0000 (05:51 +0000)
committerCraig Topper <craig.topper@intel.com>
Thu, 15 Aug 2019 05:51:54 +0000 (05:51 +0000)
The generic legalization handles this in the same way so just use
that.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@368966 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86ISelLowering.cpp

index 735dfd8620f9fe7f5f68d495d9fd495144eecfe9..d232cb1f0b22d72b09a7b266eb809cce1a724b0c 100644 (file)
@@ -26200,7 +26200,8 @@ static SDValue LowerBITCAST(SDValue Op, const X86Subtarget &Subtarget,
           SrcVT == MVT::i64) && "Unexpected VT!");
 
   assert(Subtarget.hasSSE2() && "Requires at least SSE2!");
-  if (DstVT != MVT::f64 && DstVT != MVT::i64 &&
+  if (DstVT != MVT::i64 &&
+      !(DstVT == MVT::f64 && SrcVT == MVT::i64) &&
       !(DstVT == MVT::x86mmx && SrcVT.isVector()))
     // This conversion needs to be expanded.
     return SDValue();