[llvm] [DAGCombiner] Fix commutativity in the (X + Y) + X --> Y + (X + X) fold. (PR #226021)
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 28 06:27:50 PDT 2026
================
@@ -3024,10 +3024,12 @@ SDValue DAGCombiner::visitADDLike(SDNode *N) {
// (X + Y) + X --> Y + (X + X)
SDValue X, Y, InnerAdd;
- if (sd_match(
- N, m_Add(m_OneUse(m_Value(InnerAdd, m_Add(m_Value(X), m_Value(Y)))),
- m_Deferred(X)))) {
- if (X != Y) {
+ if (sd_match(N, m_Add(m_Value(X),
----------------
RKSimon wrote:
SDPatternMatch went for commutativity by default for the common commutative binop matchers - undoing that decision is going to be messy
https://github.com/llvm/llvm-project/pull/226021
More information about the llvm-commits
mailing list