[llvm] [VPlan] Impl VPlan-based pattern match for ExtendedRed and MulAccRed (NFCI) (PR #113903)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 9 02:05:48 PST 2024
================
@@ -2694,6 +2724,202 @@ class VPReductionEVLRecipe : public VPReductionRecipe {
}
};
+/// A recipe to represent inloop extended reduction operations, performing a
+/// reduction on a vector operand into a scalar value, and adding the result to
+/// a chain. This recipe is high level abstract which will generate
+/// VPReductionRecipe and VPWidenCastRecipe before execution. The Operands are
+/// {ChainOp, VecOp, [Condition]}.
+class VPExtendedReductionRecipe : public VPReductionRecipe {
+ Instruction::CastOps ExtOp;
+ DebugLoc ExtDL;
+ /// Non-negative flag for the extended instruction.
+ bool IsNonNeg;
+
+protected:
+ VPExtendedReductionRecipe(const unsigned char SC,
+ const RecurrenceDescriptor &R, Instruction *RedI,
+ Instruction::CastOps ExtOp, DebugLoc ExtDL,
+ bool IsNonNeg, VPValue *ChainOp, VPValue *VecOp,
+ VPValue *CondOp, bool IsOrdered)
----------------
fhahn wrote:
why do we need the private constructor?
https://github.com/llvm/llvm-project/pull/113903
More information about the llvm-commits
mailing list