[llvm] [SLP][REVEC] Add getScalarizationOverhead helper function to reduce error when REVEC is enabled. (PR #128530)

Han-Kuan Chen via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 24 17:13:39 PST 2025


================
@@ -5221,9 +5256,9 @@ BoUpSLP::canVectorizeLoads(ArrayRef<Value *> VL, const Value *VL0,
           PtrVecTy, DemandedElts, /*Insert=*/true, /*Extract=*/false, CostKind);
     else
       VectorGEPCost +=
-          TTI.getScalarizationOverhead(
-              PtrVecTy, APInt::getOneBitSet(VecTy->getNumElements(), 0),
-              /*Insert=*/true, /*Extract=*/false, CostKind) +
+          TTI.getScalarizationOverhead(PtrVecTy, APInt::getOneBitSet(Sz, 0),
----------------
HanKuanChen wrote:

They share `DemandedElts` in Line 5278.
```
    InstructionCost GatherCost =
        getScalarizationOverhead(TTI, ScalarTy, VecTy, DemandedElts,
                                 /*Insert=*/true,
                                 /*Extract=*/false, CostKind) +
        ScalarLoadsCost;
```

https://github.com/llvm/llvm-project/pull/128530


More information about the llvm-commits mailing list