[X86] Teach method 'isVectorClearMaskLegal' how to check for legal blend masks.
[oota-llvm.git] / lib / Target / X86 / X86ISelLowering.cpp
index aa77a3e8ba551cf57d8a6ef2b680d63127cd34ec..bde948174d716f7efb4a62f263e030aad441e7e1 100644 (file)
@@ -19383,7 +19383,9 @@ X86TargetLowering::isVectorClearMaskLegal(const SmallVectorImpl<int> &Mask,
     return (isMOVLMask(Mask, SVT)  ||
             isCommutedMOVLMask(Mask, SVT, true) ||
             isSHUFPMask(Mask, SVT) ||
-            isSHUFPMask(Mask, SVT, /* Commuted */ true));
+            isSHUFPMask(Mask, SVT, /* Commuted */ true) ||
+            isBlendMask(Mask, SVT, Subtarget->hasSSE41(),
+                        Subtarget->hasInt256()));
   }
   return false;
 }