Author: Aleksandr Platonov Date: 2025-08-21T12:36:28+03:00 New Revision: 2e6126e46f3ee10fc3221df97a609a4baba98226
URL: https://github.com/llvm/llvm-project/commit/2e6126e46f3ee10fc3221df97a609a4baba98226 DIFF: https://github.com/llvm/llvm-project/commit/2e6126e46f3ee10fc3221df97a609a4baba98226.diff LOG: Merge branch 'main' into revert-153756-features-registry Added: Modified: llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp Removed: ################################################################################ diff --git a/llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h b/llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h index 9f036fbd569b6..18ab7ddb425ab 100644 --- a/llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h +++ b/llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h @@ -361,6 +361,12 @@ m_c_Binary(const Op0_t &Op0, const Op1_t &Op1) { return AllRecipe_commutative_match<Opcode, Op0_t, Op1_t>(Op0, Op1); } +template <typename Op0_t, typename Op1_t> +inline AllRecipe_match<Instruction::Sub, Op0_t, Op1_t> m_Sub(const Op0_t &Op0, + const Op1_t &Op1) { + return m_Binary<Instruction::Sub, Op0_t, Op1_t>(Op0, Op1); +} + template <typename Op0_t, typename Op1_t> inline AllRecipe_match<Instruction::Mul, Op0_t, Op1_t> m_Mul(const Op0_t &Op0, const Op1_t &Op1) { diff --git a/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp b/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp index 1641eb0776ecf..89214b410fab4 100644 --- a/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp +++ b/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp @@ -326,8 +326,7 @@ VPPartialReductionRecipe::computeCost(ElementCount VF, // Pick out opcode, type/ext information and use sub side effects from a widen // recipe. auto HandleWiden = [&](VPWidenRecipe *Widen) { - if (match(Widen, - m_Binary<Instruction::Sub>(m_SpecificInt(0), m_VPValue(Op)))) { + if (match(Widen, m_Sub(m_SpecificInt(0), m_VPValue(Op)))) { Widen = dyn_cast<VPWidenRecipe>(Op->getDefiningRecipe()); } Opcode = Widen->getOpcode(); diff --git a/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp b/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp index dbbead3bb782e..b25fc0af1fb51 100644 --- a/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp +++ b/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp @@ -753,8 +753,7 @@ static VPWidenInductionRecipe *getOptimizableIVOf(VPValue *VPV) { // IVStep will be the negated step of the subtraction. Check if Step == -1 // * IVStep. VPValue *Step; - if (!match(VPV, - m_Binary<Instruction::Sub>(m_VPValue(), m_VPValue(Step))) || + if (!match(VPV, m_Sub(m_VPValue(), m_VPValue(Step))) || !Step->isLiveIn() || !IVStep->isLiveIn()) return false; auto *StepCI = dyn_cast<ConstantInt>(Step->getLiveInIRValue()); _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits