Check SSSE3 instead of SSE4.1
authorMichael Liao <michael.liao@intel.com>
Wed, 17 Oct 2012 03:59:18 +0000 (03:59 +0000)
committerMichael Liao <michael.liao@intel.com>
Wed, 17 Oct 2012 03:59:18 +0000 (03:59 +0000)
- All shuffle insns required, especially PSHUB, are added in SSSE3.

llvm-svn: 166086

llvm/lib/Target/X86/X86ISelLowering.cpp

index fb0fdb3..a205aef 100644 (file)
@@ -15477,11 +15477,11 @@ static SDValue PerformLOADCombine(SDNode *N, SelectionDAG &DAG,
   ISD::LoadExtType Ext = Ld->getExtensionType();
 
   // If this is a vector EXT Load then attempt to optimize it using a
-  // shuffle. We need SSE4 for the shuffles.
+  // shuffle. We need SSSE3 shuffles.
   // TODO: It is possible to support ZExt by zeroing the undef values
   // during the shuffle phase or after the shuffle.
   if (RegVT.isVector() && RegVT.isInteger() &&
-      Ext == ISD::EXTLOAD && Subtarget->hasSSE41()) {
+      Ext == ISD::EXTLOAD && Subtarget->hasSSSE3()) {
     assert(MemVT != RegVT && "Cannot extend to the same type");
     assert(MemVT.isVector() && "Must load a vector from memory");