[llvm] r357864 - [CostModel][X86] Masked load legalization requires an binary-shuffle not a select (PR39812)

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Sun Apr 7 06:26:09 PDT 2019


Author: rksimon
Date: Sun Apr  7 06:26:09 2019
New Revision: 357864

URL: http://llvm.org/viewvc/llvm-project?rev=357864&view=rev
Log:
[CostModel][X86] Masked load legalization requires an binary-shuffle not a select (PR39812)

Expansion/truncation is better described by SK_PermuteTwoSrc than SK_Select

Modified:
    llvm/trunk/lib/Target/X86/X86TargetTransformInfo.cpp

Modified: llvm/trunk/lib/Target/X86/X86TargetTransformInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86TargetTransformInfo.cpp?rev=357864&r1=357863&r2=357864&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86TargetTransformInfo.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86TargetTransformInfo.cpp Sun Apr  7 06:26:09 2019
@@ -2379,8 +2379,8 @@ int X86TTIImpl::getMaskedMemoryOpCost(un
   if (VT.isSimple() && LT.second != VT.getSimpleVT() &&
       LT.second.getVectorNumElements() == NumElem)
     // Promotion requires expand/truncate for data and a shuffle for mask.
-    Cost += getShuffleCost(TTI::SK_Select, SrcVTy, 0, nullptr) +
-            getShuffleCost(TTI::SK_Select, MaskTy, 0, nullptr);
+    Cost += getShuffleCost(TTI::SK_PermuteTwoSrc, SrcVTy, 0, nullptr) +
+            getShuffleCost(TTI::SK_PermuteTwoSrc, MaskTy, 0, nullptr);
 
   else if (LT.second.getVectorNumElements() > NumElem) {
     VectorType *NewMaskTy = VectorType::get(MaskTy->getVectorElementType(),




More information about the llvm-commits mailing list