Skip to content

Commit 6a3a4d0

Browse files
committed
Add explicit getShuffleCost arguments for CostKind and the source vector
1 parent f93e617 commit 6a3a4d0

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

llvm/lib/Transforms/Vectorize/VectorCombine.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -451,6 +451,7 @@ bool VectorCombine::isExtractExtractCheap(ExtractElementInst *Ext0,
451451
// operands to element 0.
452452
unsigned BestExtIndex = Extract0Cost > Extract1Cost ? Ext0Index : Ext1Index;
453453
unsigned BestInsIndex = Extract0Cost > Extract1Cost ? Ext1Index : Ext0Index;
454+
Value *BestVec = (Extract0Cost > Extract1Cost ? Ext1 : Ext0)->getOperand(0);
454455
InstructionCost CheapExtractCost = std::min(Extract0Cost, Extract1Cost);
455456

456457
// Extra uses of the extracts mean that we include those costs in the
@@ -490,11 +491,12 @@ bool VectorCombine::isExtractExtractCheap(ExtractElementInst *Ext0,
490491
SmallVector<int> ShuffleMask(FixedVecTy->getNumElements(),
491492
PoisonMaskElem);
492493
ShuffleMask[BestInsIndex] = BestExtIndex;
493-
NewCost += TTI.getShuffleCost(TargetTransformInfo::SK_PermuteSingleSrc,
494-
VecTy, ShuffleMask);
495-
} else {
496494
NewCost +=
497-
TTI.getShuffleCost(TargetTransformInfo::SK_PermuteSingleSrc, VecTy);
495+
TTI.getShuffleCost(TargetTransformInfo::SK_PermuteSingleSrc, VecTy,
496+
ShuffleMask, CostKind, 0, nullptr, {BestVec});
497+
} else {
498+
NewCost += TTI.getShuffleCost(TargetTransformInfo::SK_PermuteSingleSrc,
499+
VecTy, {}, CostKind, 0, nullptr, {BestVec});
498500
}
499501
}
500502

0 commit comments

Comments
 (0)