================
@@ -2526,13 +2523,14 @@ class VPMulAccumulateReductionRecipe : public
VPReductionRecipe {
R->getCondOp(), R->isOrdered(),
WrapFlagsTy(Mul->hasNoUnsignedWrap(), Mul->hasNoSignedWrap()),
R->getDebugLoc()),
- ExtOp(Ext0->getOpcode()), IsNonNeg(Ext0->isNonNeg()),
ResultTy(ResultTy),
IsPartialReduction(isa<VPPartialReductionRecipe>(R)) {
assert(RecurrenceDescriptor::getOpcode(getRecurrenceKind()) ==
Instruction::Add &&
"The reduction instruction in MulAccumulateteReductionRecipe must "
"be Add");
+ VecOpInfo[0] = {Ext0->getOpcode(), Ext0->isNonNeg()};
+ VecOpInfo[1] = {Ext1->getOpcode(), Ext1->isNonNeg()};
----------------
gbossu wrote:
Curious: From the description of the `VPMulAccumulateReductionRecipe` class, it
seems that the extending operations are optional. Yet, this code seems to
assume `Ext0` and `Ext1` aren't null. Does that mean that these widen recipes
are always valid, but sometimes they represent an "identity" transformation?
https://github.com/llvm/llvm-project/pull/136997
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits