]> granicus.if.org Git - llvm/commitdiff
[CostModel][X86] Masked load legalization requires an binary-shuffle not a select...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 7 Apr 2019 13:26:09 +0000 (13:26 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 7 Apr 2019 13:26:09 +0000 (13:26 +0000)
Expansion/truncation is better described by SK_PermuteTwoSrc than SK_Select

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

lib/Target/X86/X86TargetTransformInfo.cpp

index 134915128d2fd6afa7799a6046313066539fbc51..ca32ae093cd3e4c6205b8177f7336fe1f7e01cbc 100644 (file)
@@ -2379,8 +2379,8 @@ int X86TTIImpl::getMaskedMemoryOpCost(unsigned Opcode, Type *SrcTy,
   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(),