Skip to content

Commit a123ea8

Browse files
committed
Add explicit getShuffleCost arguments for CostKind and the source vector
1 parent e374048 commit a123ea8

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
@@ -452,6 +452,7 @@ bool VectorCombine::isExtractExtractCheap(ExtractElementInst *Ext0,
452452
// operands to element 0.
453453
unsigned BestExtIndex = Extract0Cost > Extract1Cost ? Ext0Index : Ext1Index;
454454
unsigned BestInsIndex = Extract0Cost > Extract1Cost ? Ext1Index : Ext0Index;
455+
Value *BestVec = (Extract0Cost > Extract1Cost ? Ext1 : Ext0)->getOperand(0);
455456
InstructionCost CheapExtractCost = std::min(Extract0Cost, Extract1Cost);
456457

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

0 commit comments

Comments
 (0)