@@ -3719,11 +3719,9 @@ tryToMatchAndCreateMulAccumulateReduction(VPReductionRecipe *Red,
37193719
37203720 // Try to match reduce.add(mul(...)).
37213721 if (match (VecOp, m_Mul (m_VPValue (A), m_VPValue (B)))) {
3722- auto *RecipeA =
3723- dyn_cast_if_present<VPWidenCastRecipe>(A->getDefiningRecipe ());
3724- auto *RecipeB =
3725- dyn_cast_if_present<VPWidenCastRecipe>(B->getDefiningRecipe ());
3726- auto *Mul = cast<VPWidenRecipe>(VecOp->getDefiningRecipe ());
3722+ auto *RecipeA = dyn_cast_if_present<VPWidenCastRecipe>(A);
3723+ auto *RecipeB = dyn_cast_if_present<VPWidenCastRecipe>(B);
3724+ auto *Mul = cast<VPWidenRecipe>(VecOp);
37273725
37283726 // Convert reduce.add(mul(ext, const)) to reduce.add(mul(ext, ext(const)))
37293727 ExtendAndReplaceConstantOp (RecipeA, RecipeB, B, Mul);
@@ -3748,10 +3746,10 @@ tryToMatchAndCreateMulAccumulateReduction(VPReductionRecipe *Red,
37483746
37493747 // Match reduce.add(ext(mul(A, B))).
37503748 if (match (VecOp, m_ZExtOrSExt (m_Mul (m_VPValue (A), m_VPValue (B))))) {
3751- auto *Ext = cast<VPWidenCastRecipe>(VecOp-> getDefiningRecipe () );
3752- auto *Mul = cast<VPWidenRecipe>(Ext->getOperand (0 )-> getDefiningRecipe () );
3753- auto *Ext0 = dyn_cast_if_present<VPWidenCastRecipe>(A-> getDefiningRecipe () );
3754- auto *Ext1 = dyn_cast_if_present<VPWidenCastRecipe>(B-> getDefiningRecipe () );
3749+ auto *Ext = cast<VPWidenCastRecipe>(VecOp);
3750+ auto *Mul = cast<VPWidenRecipe>(Ext->getOperand (0 ));
3751+ auto *Ext0 = dyn_cast_if_present<VPWidenCastRecipe>(A);
3752+ auto *Ext1 = dyn_cast_if_present<VPWidenCastRecipe>(B);
37553753
37563754 // reduce.add(ext(mul(ext, const)))
37573755 // -> reduce.add(ext(mul(ext, ext(const))))
@@ -4329,12 +4327,12 @@ void VPlanTransforms::narrowInterleaveGroups(VPlan &Plan, ElementCount VF,
43294327
43304328 // Check if all values feeding InterleaveR are matching wide recipes, which
43314329 // operands that can be narrowed.
4332- auto *WideMember0 = dyn_cast_or_null<VPWidenRecipe>(
4333- InterleaveR->getStoredValues ()[0 ]-> getDefiningRecipe () );
4330+ auto *WideMember0 =
4331+ dyn_cast_or_null<VPWidenRecipe>( InterleaveR->getStoredValues ()[0 ]);
43344332 if (!WideMember0)
43354333 return ;
43364334 for (const auto &[I, V] : enumerate(InterleaveR->getStoredValues ())) {
4337- auto *R = dyn_cast_or_null<VPWidenRecipe>(V-> getDefiningRecipe () );
4335+ auto *R = dyn_cast_or_null<VPWidenRecipe>(V);
43384336 if (!R || R->getOpcode () != WideMember0->getOpcode () ||
43394337 R->getNumOperands () > 2 )
43404338 return ;
0 commit comments