Skip to content

Commit 3711329

Browse files
committed
[TTI] getInstructionCost - pull out repeated getShuffleMask() calls. NFC.
Pulled out of #84156
1 parent 5a896c6 commit 3711329

File tree

1 file changed

+21
-30
lines changed

1 file changed

+21
-30
lines changed

llvm/include/llvm/Analysis/TargetTransformInfoImpl.h

Lines changed: 21 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1324,6 +1324,7 @@ class TargetTransformInfoImplCRTPBase : public TargetTransformInfoImplBase {
13241324

13251325
auto *VecTy = cast<VectorType>(U->getType());
13261326
auto *VecSrcTy = cast<VectorType>(Operands[0]->getType());
1327+
ArrayRef<int> Mask = Shuffle->getShuffleMask();
13271328
int NumSubElts, SubIndex;
13281329

13291330
if (Shuffle->changesLength()) {
@@ -1333,21 +1334,19 @@ class TargetTransformInfoImplCRTPBase : public TargetTransformInfoImplBase {
13331334

13341335
if (Shuffle->isExtractSubvectorMask(SubIndex))
13351336
return TargetTTI->getShuffleCost(TTI::SK_ExtractSubvector, VecSrcTy,
1336-
Shuffle->getShuffleMask(), CostKind,
1337-
SubIndex, VecTy, Operands);
1337+
Mask, CostKind, SubIndex, VecTy,
1338+
Operands);
13381339

13391340
if (Shuffle->isInsertSubvectorMask(NumSubElts, SubIndex))
13401341
return TargetTTI->getShuffleCost(
1341-
TTI::SK_InsertSubvector, VecTy, Shuffle->getShuffleMask(),
1342-
CostKind, SubIndex,
1342+
TTI::SK_InsertSubvector, VecTy, Mask, CostKind, SubIndex,
13431343
FixedVectorType::get(VecTy->getScalarType(), NumSubElts),
13441344
Operands);
13451345

13461346
int ReplicationFactor, VF;
13471347
if (Shuffle->isReplicationMask(ReplicationFactor, VF)) {
1348-
APInt DemandedDstElts =
1349-
APInt::getZero(Shuffle->getShuffleMask().size());
1350-
for (auto I : enumerate(Shuffle->getShuffleMask())) {
1348+
APInt DemandedDstElts = APInt::getZero(Mask.size());
1349+
for (auto I : enumerate(Mask)) {
13511350
if (I.value() != PoisonMaskElem)
13521351
DemandedDstElts.setBit(I.index());
13531352
}
@@ -1363,44 +1362,36 @@ class TargetTransformInfoImplCRTPBase : public TargetTransformInfoImplBase {
13631362
return 0;
13641363

13651364
if (Shuffle->isReverse())
1366-
return TargetTTI->getShuffleCost(TTI::SK_Reverse, VecTy,
1367-
Shuffle->getShuffleMask(), CostKind, 0,
1368-
nullptr, Operands);
1365+
return TargetTTI->getShuffleCost(TTI::SK_Reverse, VecTy, Mask, CostKind,
1366+
0, nullptr, Operands);
13691367

13701368
if (Shuffle->isSelect())
1371-
return TargetTTI->getShuffleCost(TTI::SK_Select, VecTy,
1372-
Shuffle->getShuffleMask(), CostKind, 0,
1373-
nullptr, Operands);
1369+
return TargetTTI->getShuffleCost(TTI::SK_Select, VecTy, Mask, CostKind,
1370+
0, nullptr, Operands);
13741371

13751372
if (Shuffle->isTranspose())
1376-
return TargetTTI->getShuffleCost(TTI::SK_Transpose, VecTy,
1377-
Shuffle->getShuffleMask(), CostKind, 0,
1378-
nullptr, Operands);
1373+
return TargetTTI->getShuffleCost(TTI::SK_Transpose, VecTy, Mask,
1374+
CostKind, 0, nullptr, Operands);
13791375

13801376
if (Shuffle->isZeroEltSplat())
1381-
return TargetTTI->getShuffleCost(TTI::SK_Broadcast, VecTy,
1382-
Shuffle->getShuffleMask(), CostKind, 0,
1383-
nullptr, Operands);
1377+
return TargetTTI->getShuffleCost(TTI::SK_Broadcast, VecTy, Mask,
1378+
CostKind, 0, nullptr, Operands);
13841379

13851380
if (Shuffle->isSingleSource())
1386-
return TargetTTI->getShuffleCost(TTI::SK_PermuteSingleSrc, VecTy,
1387-
Shuffle->getShuffleMask(), CostKind, 0,
1388-
nullptr, Operands);
1381+
return TargetTTI->getShuffleCost(TTI::SK_PermuteSingleSrc, VecTy, Mask,
1382+
CostKind, 0, nullptr, Operands);
13891383

13901384
if (Shuffle->isInsertSubvectorMask(NumSubElts, SubIndex))
13911385
return TargetTTI->getShuffleCost(
1392-
TTI::SK_InsertSubvector, VecTy, Shuffle->getShuffleMask(), CostKind,
1393-
SubIndex, FixedVectorType::get(VecTy->getScalarType(), NumSubElts),
1394-
Operands);
1386+
TTI::SK_InsertSubvector, VecTy, Mask, CostKind, SubIndex,
1387+
FixedVectorType::get(VecTy->getScalarType(), NumSubElts), Operands);
13951388

13961389
if (Shuffle->isSplice(SubIndex))
1397-
return TargetTTI->getShuffleCost(TTI::SK_Splice, VecTy,
1398-
Shuffle->getShuffleMask(), CostKind,
1390+
return TargetTTI->getShuffleCost(TTI::SK_Splice, VecTy, Mask, CostKind,
13991391
SubIndex, nullptr, Operands);
14001392

1401-
return TargetTTI->getShuffleCost(TTI::SK_PermuteTwoSrc, VecTy,
1402-
Shuffle->getShuffleMask(), CostKind, 0,
1403-
nullptr, Operands);
1393+
return TargetTTI->getShuffleCost(TTI::SK_PermuteTwoSrc, VecTy, Mask,
1394+
CostKind, 0, nullptr, Operands);
14041395
}
14051396
case Instruction::ExtractElement: {
14061397
auto *EEI = dyn_cast<ExtractElementInst>(U);

0 commit comments

Comments
 (0)