[Mlir-commits] [mlir] [MLIR][SCF] Handle commuted indices in parallel loop fusion (PR #219665)

purnima shrivastava llvmlistbot at llvm.org
Mon Aug 31 02:35:51 PDT 2026


purnima-nlp wrote:

@alepot55 
auto checkCommutativeEquivalent = [&](ValueRange lhs,
                                        ValueRange rhs) -> LogicalResult {
    if (lhs.size() != rhs.size())
      return failure();

    // Preserve pairwise comparison for non-binary commutative operations.
    if (lhs.size() != 2)
      return success(llvm::all_of(
          llvm::zip_equal(lhs, rhs), [&](auto values) {
            return valsAreEquivalent(std::get<0>(values),
                                     std::get<1>(values), loopsIVsMap);
          }));

    if (valsAreEquivalent(lhs[0], rhs[0], loopsIVsMap) &&
        valsAreEquivalent(lhs[1], rhs[1], loopsIVsMap))
      return success();

    return success(valsAreEquivalent(lhs[0], rhs[1], loopsIVsMap) &&
                   valsAreEquivalent(lhs[1], rhs[0], loopsIVsMap));
  };

Is this cool?

https://github.com/llvm/llvm-project/pull/219665


More information about the Mlir-commits mailing list