[PATCH] D122077: [InstCombine] Fold (ctpop(X) == 1) | (X == 0) into ctpop(X) < 2
Craig Topper via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sun Mar 20 15:29:06 PDT 2022
craig.topper added inline comments.
================
Comment at: llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp:921
+ if (IsAnd &&
+ match(Cmp0, m_ICmp(Pred0, m_Intrinsic<Intrinsic::ctpop>(m_Value(X)),
+ m_SpecificInt(1))) &&
----------------
Since the m_ICmp matches are the same for And/Or can we share those and possibly early out from the function if they don't match. Then only use `IsAnd` to check the predicates and control the what we emit?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D122077/new/
https://reviews.llvm.org/D122077
More information about the cfe-commits
mailing list