[Mlir-commits] [mlir] [mlir] Propagate `checkCommutativeEquivalent` into `isRegionEquivalentTo` (PR #192670)

Mehdi Amini llvmlistbot at llvm.org
Fri Apr 17 09:23:30 PDT 2026


https://github.com/joker-eph updated https://github.com/llvm/llvm-project/pull/192670

>From 259c03b7ee8a80a6e90ec8b34af43eabeef6e8ad Mon Sep 17 00:00:00 2001
From: jumerckx <julesmerckx12 at gmail.com>
Date: Sat, 14 Feb 2026 20:07:11 +0100
Subject: [PATCH 1/2] propagate checkCommutativeEquivalent

---
 mlir/lib/IR/OperationSupport.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/mlir/lib/IR/OperationSupport.cpp b/mlir/lib/IR/OperationSupport.cpp
index 31f71c3949003..91c62a6604c16 100644
--- a/mlir/lib/IR/OperationSupport.cpp
+++ b/mlir/lib/IR/OperationSupport.cpp
@@ -893,9 +893,9 @@ OperationEquivalence::isRegionEquivalentTo(Region *lhs, Region *rhs,
 
   // 4. Compare regions.
   for (auto regionPair : llvm::zip(lhs->getRegions(), rhs->getRegions()))
-    if (!isRegionEquivalentTo(&std::get<0>(regionPair),
-                              &std::get<1>(regionPair), checkEquivalent,
-                              markEquivalent, flags))
+    if (!isRegionEquivalentTo(
+            &std::get<0>(regionPair), &std::get<1>(regionPair), checkEquivalent,
+            markEquivalent, flags, checkCommutativeEquivalent))
       return false;
 
   return true;

>From 5bac16dcda23c649224ae626b048490d17de8878 Mon Sep 17 00:00:00 2001
From: jumerckx <julesmerckx12 at gmail.com>
Date: Sun, 15 Feb 2026 22:57:55 +0100
Subject: [PATCH 2/2] test with commutativity

---
 mlir/test/IR/operation-equality.mlir | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/mlir/test/IR/operation-equality.mlir b/mlir/test/IR/operation-equality.mlir
index 7bdbfdd19a62d..405701aafb127 100644
--- a/mlir/test/IR/operation-equality.mlir
+++ b/mlir/test/IR/operation-equality.mlir
@@ -187,6 +187,21 @@
 
 // -----
 
+// CHECK-LABEL: test.commutatively_equal_permutation
+// CHECK-SAME: compares equals
+
+builtin.module attributes {test.includes_setup} {
+  %0:2 = "test.producer"() : () -> (i32, i32)
+  "test.commutatively_equal_permutation"() ({
+    arith.addi %0#0, %0#1 : i32
+  }) : () -> ()
+  "test.commutatively_equal_permutation"() ({
+    arith.addi %0#1, %0#0 : i32
+  }) : () -> ()
+}
+
+// -----
+
 // CHECK-LABEL: test.ignore_commutatively_equal_permutation
 // CHECK-SAME: compares NOT equals
 



More information about the Mlir-commits mailing list