================ @@ -9058,6 +9026,20 @@ void LoopVectorizationPlanner::adjustRecipesForReductions( LinkVPBB->insert(FMulRecipe, CurrentLink->getIterator()); VecOp = FMulRecipe; } else { + auto *Blend = dyn_cast<VPBlendRecipe>(CurrentLink); + if (PhiR->isInLoop() && Blend) { + assert(Blend->getNumIncomingValues() == 2 && + "Blend must have 2 incoming values"); + if (Blend->getIncomingValue(0) == PhiR) + Blend->replaceAllUsesWith(Blend->getIncomingValue(1)); + else { + Blend->replaceAllUsesWith(Blend->getIncomingValue(0)); + assert(Blend->getIncomingValue(1) == PhiR && + "PhiR must be an operand of the blend"); ---------------- ayalz wrote:
nit: may be slightly more consistent to have the assert first. https://github.com/llvm/llvm-project/pull/76090 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits