[llvm-branch-commits] [llvm] [LoopVectorizer] Bundle partial reductions with different extensions (PR #136997)
Gaƫtan Bossu via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Tue May 13 01:35:37 PDT 2025
================
@@ -2586,22 +2590,21 @@ class VPMulAccumulateReductionRecipe : public VPReductionRecipe {
VPValue *getVecOp1() const { return getOperand(2); }
/// Return if this MulAcc recipe contains extend instructions.
- bool isExtended() const { return ExtOp != Instruction::CastOps::CastOpsEnd; }
+ bool isExtended() const {
+ return getVecOp0Info().ExtOp != Instruction::CastOps::CastOpsEnd;
+ }
/// Return if the operands of mul instruction come from same extend.
- bool isSameExtend() const { return getVecOp0() == getVecOp1(); }
-
- /// Return the opcode of the underlying extend.
- Instruction::CastOps getExtOpcode() const { return ExtOp; }
+ bool isSameExtendVal() const { return getVecOp0() == getVecOp1(); }
- /// Return if the extend opcode is ZExt.
- bool isZExt() const { return ExtOp == Instruction::CastOps::ZExt; }
-
- /// Return the non negative flag of the ext recipe.
- bool isNonNeg() const { return IsNonNeg; }
+ VecOperandInfo getVecOp0Info() const { return VecOpInfo[0]; }
+ VecOperandInfo getVecOp1Info() const { return VecOpInfo[1]; }
----------------
gbossu wrote:
Super-Nit: Would it make sense to return a const refence? The struct is pretty small now, so I guess the copy does not hurt, but maybe the struct will grow over time?
https://github.com/llvm/llvm-project/pull/136997
More information about the llvm-branch-commits
mailing list