https://github.com/lukel97 updated https://github.com/llvm/llvm-project/pull/219368
>From 24435545bc23a674b73d78127ed2322fcf012600 Mon Sep 17 00:00:00 2001 From: Luke Lau <[email protected]> Date: Fri, 28 Aug 2026 13:04:50 +0800 Subject: [PATCH] [VPlan] Remove (X && Y) | (X && !Y) -> X combine. NFC We have smaller combines that can take care of this now that we process recipes in a worklist --- llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp b/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp index 714d6cbdf386ca..6ec9f4dc74ed18 100644 --- a/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp +++ b/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp @@ -1185,14 +1185,7 @@ static void removeRedundantExpandSCEVRecipes(VPlan &Plan) { /// Try to simplify logical and bitwise recipes in \p Def. static VPValue *simplifyLogicalRecipe(VPlan &Plan, VPSingleDefRecipe *Def) { - // Simplify (X && Y) | (X && !Y) -> X. - // TODO: Split up into simpler, modular combines: (X && Y) | (X && Z) into X - // && (Y | Z) and (X | !X) into true. - VPValue *X, *Y; - if (match(Def, - m_c_BinaryOr(m_LogicalAnd(m_VPValue(X), m_VPValue(Y)), - m_LogicalAnd(m_Deferred(X), m_Not(m_Deferred(Y)))))) - return X; + VPValue *X; // X | AllOnes -> AllOnes if (match(Def, m_c_BinaryOr(m_VPValue(X), m_AllOnes()))) _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
