[llvm] 8e5f3d0 - [SLPVectorizer] Fix divide-by-zero after D99719

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 2 11:13:57 PDT 2021


Author: Fangrui Song
Date: 2021-04-02T11:13:51-07:00
New Revision: 8e5f3d04f269dbe791076e775f1d1a098cbada01

URL: https://github.com/llvm/llvm-project/commit/8e5f3d04f269dbe791076e775f1d1a098cbada01
DIFF: https://github.com/llvm/llvm-project/commit/8e5f3d04f269dbe791076e775f1d1a098cbada01.diff

LOG: [SLPVectorizer] Fix divide-by-zero after D99719

Will add a test case later.

Added: 
    

Modified: 
    llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
index 0594f8bf183d..a17f018ee96e 100644
--- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
@@ -3458,7 +3458,8 @@ computeExtractCost(ArrayRef<Value *> VL, FixedVectorType *VecTy,
                    ArrayRef<int> Mask, TargetTransformInfo &TTI) {
   unsigned NumOfParts = TTI.getNumberOfParts(VecTy);
 
-  if (ShuffleKind != TargetTransformInfo::SK_PermuteSingleSrc || !NumOfParts)
+  if (ShuffleKind != TargetTransformInfo::SK_PermuteSingleSrc || !NumOfParts ||
+      VecTy->getNumElements() < NumOfParts)
     return TTI.getShuffleCost(ShuffleKind, VecTy, Mask);
 
   bool AllConsecutive = true;


        


More information about the llvm-commits mailing list