[llvm] 66743d7 - [TTI] Make SK_ExtractSubvector matching length-changing only and simplify nested shuffle mask detection chain.
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Sat Jul 31 10:13:38 PDT 2021
Author: Simon Pilgrim
Date: 2021-07-31T18:05:24+01:00
New Revision: 66743d772682f4f09adf32b5503e3434233d6891
URL: https://github.com/llvm/llvm-project/commit/66743d772682f4f09adf32b5503e3434233d6891
DIFF: https://github.com/llvm/llvm-project/commit/66743d772682f4f09adf32b5503e3434233d6891.diff
LOG: [TTI] Make SK_ExtractSubvector matching length-changing only and simplify nested shuffle mask detection chain.
Match style and don't use an else after a return.
Minor cleanup for an upcoming SK_InsertSubvector patch.
Added:
Modified:
llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
Removed:
################################################################################
diff --git a/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h b/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
index c07a33c9f155e..d66fc1d54c5ea 100644
--- a/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
+++ b/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
@@ -1071,35 +1071,45 @@ class TargetTransformInfoImplCRTPBase : public TargetTransformInfoImplBase {
auto *Shuffle = dyn_cast<ShuffleVectorInst>(U);
if (!Shuffle)
return TTI::TCC_Basic; // FIXME
+
auto *VecTy = cast<VectorType>(U->getType());
auto *VecSrcTy = cast<VectorType>(U->getOperand(0)->getType());
-
- // TODO: Identify and add costs for insert subvector, etc.
int SubIndex;
- if (Shuffle->isExtractSubvectorMask(SubIndex))
- return TargetTTI->getShuffleCost(TTI::SK_ExtractSubvector, VecSrcTy,
- Shuffle->getShuffleMask(), SubIndex,
- VecTy);
- else if (Shuffle->changesLength())
+
+ if (Shuffle->changesLength()) {
+ if (Shuffle->isExtractSubvectorMask(SubIndex))
+ return TargetTTI->getShuffleCost(TTI::SK_ExtractSubvector, VecSrcTy,
+ Shuffle->getShuffleMask(), SubIndex,
+ VecTy);
+
+ // TODO: Identify and add costs for insert subvector, etc.
return CostKind == TTI::TCK_RecipThroughput ? -1 : 1;
- else if (Shuffle->isIdentity())
+ }
+
+ if (Shuffle->isIdentity())
return 0;
- else if (Shuffle->isReverse())
+
+ if (Shuffle->isReverse())
return TargetTTI->getShuffleCost(TTI::SK_Reverse, VecTy,
Shuffle->getShuffleMask(), 0, nullptr);
- else if (Shuffle->isSelect())
+
+ if (Shuffle->isSelect())
return TargetTTI->getShuffleCost(TTI::SK_Select, VecTy,
Shuffle->getShuffleMask(), 0, nullptr);
- else if (Shuffle->isTranspose())
+
+ if (Shuffle->isTranspose())
return TargetTTI->getShuffleCost(TTI::SK_Transpose, VecTy,
Shuffle->getShuffleMask(), 0, nullptr);
- else if (Shuffle->isZeroEltSplat())
+
+ if (Shuffle->isZeroEltSplat())
return TargetTTI->getShuffleCost(TTI::SK_Broadcast, VecTy,
Shuffle->getShuffleMask(), 0, nullptr);
- else if (Shuffle->isSingleSource())
+
+ if (Shuffle->isSingleSource())
return TargetTTI->getShuffleCost(TTI::SK_PermuteSingleSrc, VecTy,
Shuffle->getShuffleMask(), 0, nullptr);
+ // TODO: Identify and add costs for insert subvector, etc.
return TargetTTI->getShuffleCost(TTI::SK_PermuteTwoSrc, VecTy,
Shuffle->getShuffleMask(), 0, nullptr);
}
More information about the llvm-commits
mailing list