[llvm-branch-commits] [llvm] [VPlan] Remove (X && Y) | (X && !Y) -> X combine. NFC (PR #219368)
Luke Lau via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Fri Sep 25 01:31:07 PDT 2026
https://github.com/lukel97 updated https://github.com/llvm/llvm-project/pull/219368
>From 80f6ac498f571d5d55111e7afb45bb32f06e35b8 Mon Sep 17 00:00:00 2001
From: Luke Lau <luke at igalia.com>
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 | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp b/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
index 09fdaa63bab99..5b1793c770e4d 100644
--- a/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+++ b/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
@@ -1171,13 +1171,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: Remove now that we have smaller combines for this.
- 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())))
More information about the llvm-branch-commits
mailing list