[llvm] [AArch64][CostModel] Improve cost estimate of scalarizing a vector di… (PR #118055)

Sushant Gokhale via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 12 10:22:17 PST 2024


================
@@ -11561,9 +11561,25 @@ BoUpSLP::getEntryCost(const TreeEntry *E, ArrayRef<Value *> VectorizedVals,
       unsigned OpIdx = isa<UnaryOperator>(VL0) ? 0 : 1;
       TTI::OperandValueInfo Op1Info = getOperandInfo(E->getOperand(0));
       TTI::OperandValueInfo Op2Info = getOperandInfo(E->getOperand(OpIdx));
-      return TTI->getArithmeticInstrCost(ShuffleOrOp, VecTy, CostKind, Op1Info,
-                                         Op2Info, {}, nullptr, TLI) +
-             CommonCost;
+      SmallVector<Value *, 16> Operands;
+      auto IsAllowedScalarTy = [](const Value *I) {
+        // Just to avoid regression with RISCV unittest.
+        return I->getType()->getPrimitiveSizeInBits() >= 32;
+      };
----------------
sushgokh wrote:

These Args are being used by the  RISCV target for calculating the cast cost. To avoid miscalculation with the patch, had to use this hack.
If we dont want this, we need to introduce other parameter. There's no way out here.

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


More information about the llvm-commits mailing list