[llvm] [DAGCombiner] Teach SearchForAndLoads to handle an AND with 2 constant operands. (PR #142062)
Yingwei Zheng via llvm-commits
llvm-commits at lists.llvm.org
Fri May 30 02:43:04 PDT 2025
================
@@ -6812,7 +6812,8 @@ bool DAGCombiner::SearchForAndLoads(SDNode *N,
// Some constants may need fixing up later if they are too large.
if (auto *C = dyn_cast<ConstantSDNode>(Op)) {
- if ((N->getOpcode() == ISD::OR || N->getOpcode() == ISD::XOR) &&
+ if ((N->getOpcode() == ISD::OR || N->getOpcode() == ISD::XOR ||
+ N->getOpcode() == ISD::AND) &&
----------------
dtcxzyw wrote:
N is always a bitwise op. We can insert an assertion instead.
https://github.com/llvm/llvm-project/blob/2a3afa2feb90844ad0f8b0bc57663e2aec06cd0a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp#L6858-L6864
https://github.com/llvm/llvm-project/blob/2a3afa2feb90844ad0f8b0bc57663e2aec06cd0a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp#L6891-L6906
https://github.com/llvm/llvm-project/blob/2a3afa2feb90844ad0f8b0bc57663e2aec06cd0a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp#L7494-L7501
https://github.com/llvm/llvm-project/pull/142062
More information about the llvm-commits
mailing list