[Mlir-commits] [mlir] [MLIR] Fix computeTiedSuccessorInputs for single-iteration scf.for (PR #188986)

Mehdi Amini llvmlistbot at llvm.org
Mon Aug 17 06:27:48 PDT 2026


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

>From 282fa2a05af8c85e4c7e97561b7d5ee4be66a2b8 Mon Sep 17 00:00:00 2001
From: Mehdi Amini <joker.eph at gmail.com>
Date: Thu, 26 Mar 2026 15:57:19 -0700
Subject: [PATCH] [MLIR][SCF] Prioritize single-iteration loop inlining

Loops with a statically known trip count of one expose a single acyclic
path and can be handled by the existing region branch op inliner.

Give that rewrite a higher benefit than the generic region branch op
canonicalizations. This ensures that the loop is inlined before dead
successor inputs can be removed independently and temporarily invalidate
the op under expensive pattern API checks.

This fixes some tests with MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS enabled.

Assisted-by: Codex
---
 mlir/lib/Dialect/SCF/IR/SCF.cpp                        | 10 ++++++++--
 mlir/test/Dialect/Linalg/continuous-tiling-full.mlir   |  1 -
 mlir/test/Dialect/Linalg/decompose-pack-tile.mlir      |  1 -
 mlir/test/Dialect/Linalg/decompose-unpack-tile.mlir    |  1 -
 .../Linalg/transform-op-peel-and-vectorize-conv.mlir   |  1 -
 .../Dialect/Linalg/transform-op-tile-pack-unpack.mlir  |  1 -
 .../Linalg/transform-tile-and-winograd-rewrite.mlir    |  1 -
 mlir/test/Dialect/SCF/canonicalize.mlir                |  1 -
 mlir/test/Dialect/SCF/for-loop-peeling.mlir            |  2 --
 .../fuse_sparse_convert_into_producer.mlir             |  1 -
 mlir/test/Integration/Dialect/Linalg/CPU/mmt4d.mlir    |  1 -
 .../Dialect/Linalg/CPU/pack-dynamic-inner-tile.mlir    |  1 -
 .../Dialect/Linalg/CPU/pack-unpack-mmt4d.mlir          |  1 -
 .../Dialect/Linalg/CPU/unpack-dynamic-inner-tile.mlir  |  1 -
 .../Dialect/SparseTensor/CPU/dual_sparse_conv_2d.mlir  |  1 -
 .../Dialect/SparseTensor/CPU/sparse_block_matmul.mlir  |  1 -
 .../SparseTensor/CPU/sparse_conv_1d_nwc_wcf.mlir       |  1 -
 .../Dialect/SparseTensor/CPU/sparse_conv_2d.mlir       |  1 -
 .../Dialect/SparseTensor/CPU/sparse_conv_2d_55.mlir    |  1 -
 .../SparseTensor/CPU/sparse_conv_2d_nchw_fchw.mlir     |  1 -
 .../SparseTensor/CPU/sparse_conv_2d_nhwc_hwcf.mlir     |  1 -
 .../Dialect/SparseTensor/CPU/sparse_conv_3d.mlir       |  1 -
 .../SparseTensor/CPU/sparse_conv_3d_ndhwc_dhwcf.mlir   |  1 -
 .../SparseTensor/CPU/sparse_conversion_block.mlir      |  1 -
 .../CPU/sparse_dilated_conv_2d_nhwc_hwcf.mlir          |  1 -
 .../Dialect/SparseTensor/CPU/sparse_pooling_nhwc.mlir  |  1 -
 .../CPU/sparse_strided_conv_2d_nhwc_hwcf.mlir          |  1 -
 27 files changed, 8 insertions(+), 29 deletions(-)

diff --git a/mlir/lib/Dialect/SCF/IR/SCF.cpp b/mlir/lib/Dialect/SCF/IR/SCF.cpp
index 54d28783ddc4a..36990db4b7dc4 100644
--- a/mlir/lib/Dialect/SCF/IR/SCF.cpp
+++ b/mlir/lib/Dialect/SCF/IR/SCF.cpp
@@ -1009,9 +1009,13 @@ void ForOp::getCanonicalizationPatterns(RewritePatternSet &results,
   results.add<ForOpTensorCastFolder>(context);
   populateRegionBranchOpInterfaceCanonicalizationPatterns(
       results, ForOp::getOperationName());
+  // Inline single-iteration loops before applying the generic region branch op
+  // canonicalizations, which may otherwise remove tied iter_args and results
+  // independently.
   populateRegionBranchOpInterfaceInliningPattern(
       results, ForOp::getOperationName(),
-      /*replBuilderFn=*/[](OpBuilder &builder, Location loc, Value value) {
+      /*replBuilderFn=*/
+      [](OpBuilder &builder, Location loc, Value value) {
         // scf.for has only one non-successor input value: the loop induction
         // variable. In case of a single acyclic path through the op, the IV can
         // be safely replaced with the lower bound.
@@ -1019,7 +1023,9 @@ void ForOp::getCanonicalizationPatterns(RewritePatternSet &results,
         assert(blockArg.getArgNumber() == 0 && "expected induction variable");
         auto forOp = cast<ForOp>(blockArg.getOwner()->getParentOp());
         return forOp.getLowerBound();
-      });
+      },
+      /*matcherFn=*/::mlir::detail::defaultMatcherFn,
+      /*benefit=*/2);
 }
 
 std::optional<APInt> ForOp::getConstantStep() {
diff --git a/mlir/test/Dialect/Linalg/continuous-tiling-full.mlir b/mlir/test/Dialect/Linalg/continuous-tiling-full.mlir
index fd72c4ee4e015..95bcd50028287 100644
--- a/mlir/test/Dialect/Linalg/continuous-tiling-full.mlir
+++ b/mlir/test/Dialect/Linalg/continuous-tiling-full.mlir
@@ -1,6 +1,5 @@
 // RUN: mlir-opt --transform-interpreter --canonicalize --split-input-file %s | FileCheck %s
 
-// XFAIL: mlir-expensive-checks
 
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
diff --git a/mlir/test/Dialect/Linalg/decompose-pack-tile.mlir b/mlir/test/Dialect/Linalg/decompose-pack-tile.mlir
index 363db8f4d0932..1a1af0b477d48 100644
--- a/mlir/test/Dialect/Linalg/decompose-pack-tile.mlir
+++ b/mlir/test/Dialect/Linalg/decompose-pack-tile.mlir
@@ -3,7 +3,6 @@
 // RUN: -transform-interpreter=entry-point=decompose_pack \
 // RUN: -transform-interpreter  %s | FileCheck %s
 
-// XFAIL: mlir-expensive-checks
 
 func.func @KCRS_to_KCRSsr(%arg0: tensor<1x1x128x64xf32>, %arg1: tensor<1x1x4x8x8x32xf32>) -> tensor<1x1x4x8x8x32xf32> {
   %0 = linalg.pack %arg0 inner_dims_pos = [3, 2] inner_tiles = [8, 32] into %arg1 : tensor<1x1x128x64xf32> -> tensor<1x1x4x8x8x32xf32>
diff --git a/mlir/test/Dialect/Linalg/decompose-unpack-tile.mlir b/mlir/test/Dialect/Linalg/decompose-unpack-tile.mlir
index 86af4d63149e5..4cf445f7402ed 100644
--- a/mlir/test/Dialect/Linalg/decompose-unpack-tile.mlir
+++ b/mlir/test/Dialect/Linalg/decompose-unpack-tile.mlir
@@ -3,7 +3,6 @@
 // RUN: -transform-interpreter=entry-point=decompose_unpack \
 // RUN: -transform-interpreter  %s | FileCheck %s
 
-// XFAIL: mlir-expensive-checks
 
 func.func @KCRSsr_to_KCRS(%arg0: tensor<1x1x4x8x8x32xf32>, %arg1: tensor<1x1x128x64xf32>) -> tensor<1x1x128x64xf32> {
   %0 = linalg.unpack %arg0 inner_dims_pos = [3, 2] inner_tiles = [8, 32] into %arg1 : tensor<1x1x4x8x8x32xf32> -> tensor<1x1x128x64xf32>
diff --git a/mlir/test/Dialect/Linalg/transform-op-peel-and-vectorize-conv.mlir b/mlir/test/Dialect/Linalg/transform-op-peel-and-vectorize-conv.mlir
index 18d53d631ce48..9805372233a64 100644
--- a/mlir/test/Dialect/Linalg/transform-op-peel-and-vectorize-conv.mlir
+++ b/mlir/test/Dialect/Linalg/transform-op-peel-and-vectorize-conv.mlir
@@ -1,6 +1,5 @@
 // RUN: mlir-opt %s --transform-interpreter --split-input-file -resolve-shaped-type-result-dims -canonicalize | FileCheck %s
 
-// XFAIL: mlir-expensive-checks
 
 // Demonstrates what happens when peeling the 4th loop (that corresponds to the
 // "depth" dimension in depthwise convs) followed by vectorization in the
diff --git a/mlir/test/Dialect/Linalg/transform-op-tile-pack-unpack.mlir b/mlir/test/Dialect/Linalg/transform-op-tile-pack-unpack.mlir
index 287ce5c86f8ed..c7f27b5e8eebc 100644
--- a/mlir/test/Dialect/Linalg/transform-op-tile-pack-unpack.mlir
+++ b/mlir/test/Dialect/Linalg/transform-op-tile-pack-unpack.mlir
@@ -1,6 +1,5 @@
 // RUN: mlir-opt %s -transform-interpreter -canonicalize -cse -split-input-file | FileCheck %s
 
-// XFAIL: mlir-expensive-checks
 
 // CHECK-DAG:   #[[MAP0:.+]] = affine_map<(d0) -> (d0 * 32)>
 // CHECK:       func.func @NC_to_NCnc
diff --git a/mlir/test/Dialect/Linalg/transform-tile-and-winograd-rewrite.mlir b/mlir/test/Dialect/Linalg/transform-tile-and-winograd-rewrite.mlir
index f8567b1e2eeb2..0c28098457d65 100644
--- a/mlir/test/Dialect/Linalg/transform-tile-and-winograd-rewrite.mlir
+++ b/mlir/test/Dialect/Linalg/transform-tile-and-winograd-rewrite.mlir
@@ -1,6 +1,5 @@
 // RUN: mlir-opt %s -transform-interpreter -canonicalize --split-input-file | FileCheck %s
 
-// XFAIL: mlir-expensive-checks
 
 func.func @conv2d(%arg0: tensor<2x10x10x5xf32>, %arg1: tensor<2x3x3x5xf32>, %arg2: tensor<2x8x8x2xf32>) -> tensor<2x8x8x2xf32> {
   %0 = tensor.empty() : tensor<6x6x5x2xf32>
diff --git a/mlir/test/Dialect/SCF/canonicalize.mlir b/mlir/test/Dialect/SCF/canonicalize.mlir
index bfb0ce080aee4..d834d553ce8c0 100644
--- a/mlir/test/Dialect/SCF/canonicalize.mlir
+++ b/mlir/test/Dialect/SCF/canonicalize.mlir
@@ -1,6 +1,5 @@
 // RUN: mlir-opt %s -pass-pipeline='builtin.module(func.func(canonicalize{test-convergence}))' -split-input-file | FileCheck %s
 
-// XFAIL: mlir-expensive-checks
 
 func.func @single_iteration_some(%A: memref<?x?x?xi32>) {
   %c0 = arith.constant 0 : index
diff --git a/mlir/test/Dialect/SCF/for-loop-peeling.mlir b/mlir/test/Dialect/SCF/for-loop-peeling.mlir
index 2c37b17debf1f..4337f3b8d4d6f 100644
--- a/mlir/test/Dialect/SCF/for-loop-peeling.mlir
+++ b/mlir/test/Dialect/SCF/for-loop-peeling.mlir
@@ -1,7 +1,6 @@
 // RUN: mlir-opt %s -scf-for-loop-peeling -canonicalize -split-input-file -verify-diagnostics | FileCheck %s
 // RUN: mlir-opt %s -scf-for-loop-peeling=skip-partial=false -canonicalize -split-input-file -verify-diagnostics | FileCheck %s -check-prefix=CHECK-NO-SKIP
 
-// XFAIL: mlir-expensive-checks
 
 //  CHECK-DAG: #[[MAP0:.*]] = affine_map<()[s0, s1, s2] -> (s1 - (-s0 + s1) mod s2)>
 //  CHECK-DAG: #[[MAP1:.*]] = affine_map<(d0)[s0] -> (-d0 + s0)>
@@ -378,4 +377,3 @@ func.func @zero_step(%arg0: memref<i64>) {
   }
   return
 }
-
diff --git a/mlir/test/Dialect/SparseTensor/fuse_sparse_convert_into_producer.mlir b/mlir/test/Dialect/SparseTensor/fuse_sparse_convert_into_producer.mlir
index 6a43631246769..2785f157794fd 100644
--- a/mlir/test/Dialect/SparseTensor/fuse_sparse_convert_into_producer.mlir
+++ b/mlir/test/Dialect/SparseTensor/fuse_sparse_convert_into_producer.mlir
@@ -1,7 +1,6 @@
 // RUN: mlir-opt %s --pre-sparsification-rewrite --sparse-reinterpret-map  | FileCheck %s --check-prefix=CHECK-FOLD
 // RUN: mlir-opt %s --pre-sparsification-rewrite --sparse-reinterpret-map --sparsification | FileCheck %s
 
-// XFAIL: mlir-expensive-checks
 
 #trait = {
   indexing_maps = [
diff --git a/mlir/test/Integration/Dialect/Linalg/CPU/mmt4d.mlir b/mlir/test/Integration/Dialect/Linalg/CPU/mmt4d.mlir
index fe969c4770cf7..dcd7686eb1f2c 100644
--- a/mlir/test/Integration/Dialect/Linalg/CPU/mmt4d.mlir
+++ b/mlir/test/Integration/Dialect/Linalg/CPU/mmt4d.mlir
@@ -1,4 +1,3 @@
-// XFAIL: mlir-expensive-checks
 
 // DEFINE: %{compile} =  mlir-opt %s \
 // DEFINE:    -transform-interpreter -test-transform-dialect-erase-schedule \
diff --git a/mlir/test/Integration/Dialect/Linalg/CPU/pack-dynamic-inner-tile.mlir b/mlir/test/Integration/Dialect/Linalg/CPU/pack-dynamic-inner-tile.mlir
index abf890f29266b..99e2f8b097b25 100644
--- a/mlir/test/Integration/Dialect/Linalg/CPU/pack-dynamic-inner-tile.mlir
+++ b/mlir/test/Integration/Dialect/Linalg/CPU/pack-dynamic-inner-tile.mlir
@@ -1,4 +1,3 @@
-// XFAIL: mlir-expensive-checks
 
 // DEFINE: %{compile} =  mlir-opt %s \
 // DEFINE:  -transform-interpreter -test-transform-dialect-erase-schedule |\
diff --git a/mlir/test/Integration/Dialect/Linalg/CPU/pack-unpack-mmt4d.mlir b/mlir/test/Integration/Dialect/Linalg/CPU/pack-unpack-mmt4d.mlir
index 62a77b1930844..ac5e83c9669fb 100644
--- a/mlir/test/Integration/Dialect/Linalg/CPU/pack-unpack-mmt4d.mlir
+++ b/mlir/test/Integration/Dialect/Linalg/CPU/pack-unpack-mmt4d.mlir
@@ -1,4 +1,3 @@
-// XFAIL: mlir-expensive-checks
 
 // DEFINE: %{compile} =  mlir-opt %s \
 // DEFINE:    -transform-interpreter -test-transform-dialect-erase-schedule \
diff --git a/mlir/test/Integration/Dialect/Linalg/CPU/unpack-dynamic-inner-tile.mlir b/mlir/test/Integration/Dialect/Linalg/CPU/unpack-dynamic-inner-tile.mlir
index e1ea476adbe4a..aaad5e745f02f 100644
--- a/mlir/test/Integration/Dialect/Linalg/CPU/unpack-dynamic-inner-tile.mlir
+++ b/mlir/test/Integration/Dialect/Linalg/CPU/unpack-dynamic-inner-tile.mlir
@@ -1,4 +1,3 @@
-// XFAIL: mlir-expensive-checks
 
 // DEFINE: %{compile} =  mlir-opt %s \
 // DEFINE:  -transform-interpreter -test-transform-dialect-erase-schedule \
diff --git a/mlir/test/Integration/Dialect/SparseTensor/CPU/dual_sparse_conv_2d.mlir b/mlir/test/Integration/Dialect/SparseTensor/CPU/dual_sparse_conv_2d.mlir
index d8759482f7ae6..842cdaa320c3d 100644
--- a/mlir/test/Integration/Dialect/SparseTensor/CPU/dual_sparse_conv_2d.mlir
+++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/dual_sparse_conv_2d.mlir
@@ -1,4 +1,3 @@
-// XFAIL: mlir-expensive-checks
 
 //--------------------------------------------------------------------------------------------------
 // WHEN CREATING A NEW TEST, PLEASE JUST COPY & PASTE WITHOUT EDITS.
diff --git a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_block_matmul.mlir b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_block_matmul.mlir
index da0ed19d31e9c..d0a8b3b279d20 100644
--- a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_block_matmul.mlir
+++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_block_matmul.mlir
@@ -1,4 +1,3 @@
-// XFAIL: mlir-expensive-checks
 
 //--------------------------------------------------------------------------------------------------
 // WHEN CREATING A NEW TEST, PLEASE JUST COPY & PASTE WITHOUT EDITS.
diff --git a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_1d_nwc_wcf.mlir b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_1d_nwc_wcf.mlir
index f51d50c84efea..e9d0db56e33fd 100644
--- a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_1d_nwc_wcf.mlir
+++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_1d_nwc_wcf.mlir
@@ -1,4 +1,3 @@
-// XFAIL: mlir-expensive-checks
 
 //--------------------------------------------------------------------------------------------------
 // WHEN CREATING A NEW TEST, PLEASE JUST COPY & PASTE WITHOUT EDITS.
diff --git a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_2d.mlir b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_2d.mlir
index 8d3671c0ab0aa..8f6d98452d77c 100644
--- a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_2d.mlir
+++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_2d.mlir
@@ -1,4 +1,3 @@
-// XFAIL: mlir-expensive-checks
 
 //--------------------------------------------------------------------------------------------------
 // WHEN CREATING A NEW TEST, PLEASE JUST COPY & PASTE WITHOUT EDITS.
diff --git a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_2d_55.mlir b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_2d_55.mlir
index 244436cddd92c..152078bfc4072 100755
--- a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_2d_55.mlir
+++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_2d_55.mlir
@@ -1,4 +1,3 @@
-// XFAIL: mlir-expensive-checks
 
 //--------------------------------------------------------------------------------------------------
 // WHEN CREATING A NEW TEST, PLEASE JUST COPY & PASTE WITHOUT EDITS.
diff --git a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_2d_nchw_fchw.mlir b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_2d_nchw_fchw.mlir
index 771a8391e5c75..b03142dce2502 100644
--- a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_2d_nchw_fchw.mlir
+++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_2d_nchw_fchw.mlir
@@ -1,4 +1,3 @@
-// XFAIL: mlir-expensive-checks
 
 //--------------------------------------------------------------------------------------------------
 // WHEN CREATING A NEW TEST, PLEASE JUST COPY & PASTE WITHOUT EDITS.
diff --git a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_2d_nhwc_hwcf.mlir b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_2d_nhwc_hwcf.mlir
index 5dfe79372d3c7..0a5ab9bb79e9c 100644
--- a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_2d_nhwc_hwcf.mlir
+++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_2d_nhwc_hwcf.mlir
@@ -1,4 +1,3 @@
-// XFAIL: mlir-expensive-checks
 
 //--------------------------------------------------------------------------------------------------
 // WHEN CREATING A NEW TEST, PLEASE JUST COPY & PASTE WITHOUT EDITS.
diff --git a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_3d.mlir b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_3d.mlir
index 78081c38b68c5..1f73aa8c6d95f 100644
--- a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_3d.mlir
+++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_3d.mlir
@@ -1,4 +1,3 @@
-// XFAIL: mlir-expensive-checks
 
 //--------------------------------------------------------------------------------------------------
 // WHEN CREATING A NEW TEST, PLEASE JUST COPY & PASTE WITHOUT EDITS.
diff --git a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_3d_ndhwc_dhwcf.mlir b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_3d_ndhwc_dhwcf.mlir
index 02b593f6c8284..ffea9fdd9926b 100644
--- a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_3d_ndhwc_dhwcf.mlir
+++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_3d_ndhwc_dhwcf.mlir
@@ -1,4 +1,3 @@
-// XFAIL: mlir-expensive-checks
 
 //--------------------------------------------------------------------------------------------------
 // WHEN CREATING A NEW TEST, PLEASE JUST COPY & PASTE WITHOUT EDITS.
diff --git a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conversion_block.mlir b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conversion_block.mlir
index c1a32e9c5f489..d1a6753a9f157 100644
--- a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conversion_block.mlir
+++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conversion_block.mlir
@@ -1,4 +1,3 @@
-// XFAIL: mlir-expensive-checks
 
 //--------------------------------------------------------------------------------------------------
 // WHEN CREATING A NEW TEST, PLEASE JUST COPY & PASTE WITHOUT EDITS.
diff --git a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_dilated_conv_2d_nhwc_hwcf.mlir b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_dilated_conv_2d_nhwc_hwcf.mlir
index b4229d7ae0569..f69d9bd220cd6 100644
--- a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_dilated_conv_2d_nhwc_hwcf.mlir
+++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_dilated_conv_2d_nhwc_hwcf.mlir
@@ -1,4 +1,3 @@
-// XFAIL: mlir-expensive-checks
 
 //--------------------------------------------------------------------------------------------------
 // WHEN CREATING A NEW TEST, PLEASE JUST COPY & PASTE WITHOUT EDITS.
diff --git a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_pooling_nhwc.mlir b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_pooling_nhwc.mlir
index a693b74d8571d..ec2916d4dcdfa 100644
--- a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_pooling_nhwc.mlir
+++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_pooling_nhwc.mlir
@@ -1,4 +1,3 @@
-// XFAIL: mlir-expensive-checks
 
 //--------------------------------------------------------------------------------------------------
 // WHEN CREATING A NEW TEST, PLEASE JUST COPY & PASTE WITHOUT EDITS.
diff --git a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_strided_conv_2d_nhwc_hwcf.mlir b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_strided_conv_2d_nhwc_hwcf.mlir
index 05d96c9b38f4c..dc8c9a26030e5 100644
--- a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_strided_conv_2d_nhwc_hwcf.mlir
+++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_strided_conv_2d_nhwc_hwcf.mlir
@@ -1,4 +1,3 @@
-// XFAIL: mlir-expensive-checks
 
 //--------------------------------------------------------------------------------------------------
 // WHEN CREATING A NEW TEST, PLEASE JUST COPY & PASTE WITHOUT EDITS.



More information about the Mlir-commits mailing list