[Mlir-commits] [mlir] [mlir] Filter out failing tests when expensive checks are ON (PR #216323)
Andrzej WarzyĆski
llvmlistbot at llvm.org
Mon Aug 17 02:12:05 PDT 2026
https://github.com/banach-space updated https://github.com/llvm/llvm-project/pull/216323
>From 2f46823ab4be3542232d636b1bf703d505f220be Mon Sep 17 00:00:00 2001
From: Andrzej Warzynski <andrzej.warzynski at arm.com>
Date: Fri, 14 Aug 2026 13:45:27 +0000
Subject: [PATCH 1/3] [mlir] Filter out failing tests when expensive checks are
ON
Adds logic to conditionally disable tests that fail when expensive checks
are enabled (-DMLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS=ON). When the
expensive API checks are disabled, the newly marked tests are run as usual.
This is a temporary measure to enable the introduction of a buildbot that
will run with expensive API checks enabled. No new tests disabled with
expensive checks should be added (i.e. tests with `REQUIRES:
!mlir-expensive-checks`). The existing failures marked in this PR should
be fixed.
GitHub issue that reported these failures prior to this PR:
* https://github.com/llvm/llvm-project/issues/163599
---
mlir/test/CMakeLists.txt | 1 +
mlir/test/Conversion/SCFToAffine/scf-to-affine.mlir | 4 +++-
mlir/test/Conversion/SCFToOpenMP/reductions.mlir | 2 ++
mlir/test/Conversion/SCFToOpenMP/scf-to-openmp.mlir | 2 ++
mlir/test/Conversion/SCFToOpenMP/vector-reduction.mlir | 4 +++-
mlir/test/Dialect/Affine/canonicalize.mlir | 2 ++
mlir/test/Dialect/EmitC/wrap-func-in-class.mlir | 2 ++
mlir/test/Dialect/Linalg/continuous-tiling-full.mlir | 2 ++
mlir/test/Dialect/Linalg/decompose-pack-tile.mlir | 2 ++
mlir/test/Dialect/Linalg/decompose-unpack-tile.mlir | 2 ++
mlir/test/Dialect/Linalg/drop-unit-extent-dims.mlir | 2 ++
.../Dialect/Linalg/transform-op-peel-and-vectorize-conv.mlir | 2 ++
mlir/test/Dialect/Linalg/transform-op-tile-pack-unpack.mlir | 2 ++
.../Dialect/Linalg/transform-tile-and-winograd-rewrite.mlir | 2 ++
mlir/test/Dialect/OpenACC/acc-if-clause-lowering.mlir | 2 ++
mlir/test/Dialect/OpenACC/compute-region-canonicalize.mlir | 2 ++
mlir/test/Dialect/SCF/canonicalize.mlir | 2 ++
mlir/test/Dialect/SCF/for-loop-peeling.mlir | 2 ++
mlir/test/Dialect/SparseTensor/encoding_with_symbols.mlir | 2 ++
.../SparseTensor/fuse_sparse_convert_into_producer.mlir | 2 ++
mlir/test/Dialect/X86/move-acc-for-contract-loop.mlir | 2 ++
mlir/test/Dialect/X86/vector-contract-bf16-to-fma.mlir | 2 ++
.../X86/vector-contract-to-packed-type-dotproduct.mlir | 2 ++
mlir/test/Dialect/XeGPU/array-len-op-unit.mlir | 2 ++
.../Dialect/Linalg/CPU/ArmSME/pack-unpack-mmt4d.mlir | 2 ++
.../Dialect/Linalg/CPU/ArmSVE/pack-scalable-inner-tile.mlir | 2 +-
.../Dialect/Linalg/CPU/ArmSVE/pack-unpack-mmt4d.mlir | 2 ++
mlir/test/Integration/Dialect/Linalg/CPU/mmt4d.mlir | 2 ++
.../Dialect/Linalg/CPU/pack-dynamic-inner-tile.mlir | 2 ++
.../Integration/Dialect/Linalg/CPU/pack-unpack-mmt4d.mlir | 2 ++
.../Dialect/Linalg/CPU/unpack-dynamic-inner-tile.mlir | 2 ++
.../Dialect/SparseTensor/CPU/dual_sparse_conv_2d.mlir | 2 ++
.../Dialect/SparseTensor/CPU/sparse_block_matmul.mlir | 2 ++
.../Dialect/SparseTensor/CPU/sparse_conv_1d_nwc_wcf.mlir | 2 ++
.../Integration/Dialect/SparseTensor/CPU/sparse_conv_2d.mlir | 2 ++
.../Dialect/SparseTensor/CPU/sparse_conv_2d_55.mlir | 2 ++
.../Dialect/SparseTensor/CPU/sparse_conv_2d_nchw_fchw.mlir | 2 ++
.../Dialect/SparseTensor/CPU/sparse_conv_2d_nhwc_hwcf.mlir | 2 ++
.../Integration/Dialect/SparseTensor/CPU/sparse_conv_3d.mlir | 2 ++
.../Dialect/SparseTensor/CPU/sparse_conv_3d_ndhwc_dhwcf.mlir | 2 ++
.../Dialect/SparseTensor/CPU/sparse_conversion_block.mlir | 2 ++
.../SparseTensor/CPU/sparse_dilated_conv_2d_nhwc_hwcf.mlir | 2 ++
.../Dialect/SparseTensor/CPU/sparse_pooling_nhwc.mlir | 2 ++
.../SparseTensor/CPU/sparse_strided_conv_2d_nhwc_hwcf.mlir | 2 ++
mlir/test/Transforms/test-strict-pattern-driver.mlir | 2 ++
mlir/test/lit.cfg.py | 3 +++
mlir/test/lit.site.cfg.py.in | 1 +
47 files changed, 94 insertions(+), 3 deletions(-)
diff --git a/mlir/test/CMakeLists.txt b/mlir/test/CMakeLists.txt
index c2c426bc320bf..9fdbacfb860be 100644
--- a/mlir/test/CMakeLists.txt
+++ b/mlir/test/CMakeLists.txt
@@ -89,6 +89,7 @@ llvm_canonicalize_cmake_booleans(
MLIR_RUN_CUDA_SM80_LT_TESTS
MLIR_RUN_CUDA_SM90_TESTS
BUILD_SHARED_LIBS
+ MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS
)
configure_lit_site_cfg(
diff --git a/mlir/test/Conversion/SCFToAffine/scf-to-affine.mlir b/mlir/test/Conversion/SCFToAffine/scf-to-affine.mlir
index 67e56c45a4b77..d339eb4b9764b 100644
--- a/mlir/test/Conversion/SCFToAffine/scf-to-affine.mlir
+++ b/mlir/test/Conversion/SCFToAffine/scf-to-affine.mlir
@@ -1,5 +1,7 @@
// RUN: mlir-opt --raise-scf-to-affine --split-input-file %s | FileCheck %s
+// REQUIRES: !mlir-expensive-checks
+
// CHECK-LABEL: @constant_step
// CHECK-SAME: %[[ARR:.*]]: memref<?xi32>, %[[LB:.*]]: index, %[[UB:.*]]: index
// CHECK: affine.for %[[IV:.*]] = %[[LB]] to %[[UB]] step 3 {
@@ -327,4 +329,4 @@ module attributes {dlti.dl_spec = #dlti.dl_spec<#dlti.dl_entry<index, 32>>} {
}
return
}
-}
\ No newline at end of file
+}
diff --git a/mlir/test/Conversion/SCFToOpenMP/reductions.mlir b/mlir/test/Conversion/SCFToOpenMP/reductions.mlir
index 8e2343df48877..3a3ae645c4008 100644
--- a/mlir/test/Conversion/SCFToOpenMP/reductions.mlir
+++ b/mlir/test/Conversion/SCFToOpenMP/reductions.mlir
@@ -1,5 +1,7 @@
// RUN: mlir-opt -convert-scf-to-openmp -split-input-file %s | FileCheck %s
+// REQUIRES: !mlir-expensive-checks
+
// CHECK: omp.declare_reduction @[[$REDF:.*]] : f32
// CHECK: init
diff --git a/mlir/test/Conversion/SCFToOpenMP/scf-to-openmp.mlir b/mlir/test/Conversion/SCFToOpenMP/scf-to-openmp.mlir
index d362bb6092419..0a6f16b8b5520 100644
--- a/mlir/test/Conversion/SCFToOpenMP/scf-to-openmp.mlir
+++ b/mlir/test/Conversion/SCFToOpenMP/scf-to-openmp.mlir
@@ -1,5 +1,7 @@
// RUN: mlir-opt -convert-scf-to-openmp='num-threads=4' %s | FileCheck %s
+// REQUIRES: !mlir-expensive-checks
+
// CHECK-LABEL: @parallel
func.func @parallel(%arg0: index, %arg1: index, %arg2: index,
%arg3: index, %arg4: index, %arg5: index) {
diff --git a/mlir/test/Conversion/SCFToOpenMP/vector-reduction.mlir b/mlir/test/Conversion/SCFToOpenMP/vector-reduction.mlir
index 018f8a03c8e34..93a1bd80ca9b1 100644
--- a/mlir/test/Conversion/SCFToOpenMP/vector-reduction.mlir
+++ b/mlir/test/Conversion/SCFToOpenMP/vector-reduction.mlir
@@ -1,5 +1,7 @@
// RUN: mlir-opt %s --convert-scf-to-openmp | FileCheck %s
+// REQUIRES: !mlir-expensive-checks
+
// CHECK-LABEL: omp.declare_reduction @__scf_reduction : vector<2xi1>
// CHECK: init {
// CHECK: %[[INIT:.*]] = llvm.mlir.constant(dense<true> : vector<2xi1>) : vector<2xi1>
@@ -26,4 +28,4 @@ func.func @vector_and_reduction() {
}
}
return
-}
\ No newline at end of file
+}
diff --git a/mlir/test/Dialect/Affine/canonicalize.mlir b/mlir/test/Dialect/Affine/canonicalize.mlir
index 90216f8dc2b8b..de1af4dbf9b00 100644
--- a/mlir/test/Dialect/Affine/canonicalize.mlir
+++ b/mlir/test/Dialect/Affine/canonicalize.mlir
@@ -1,6 +1,8 @@
// RUN: mlir-opt -allow-unregistered-dialect %s -split-input-file -canonicalize="test-convergence" | FileCheck %s
// RUN: mlir-opt -allow-unregistered-dialect %s -split-input-file -canonicalize="test-convergence top-down=0" | FileCheck %s --check-prefix=CHECK-BOTTOM-UP
+// REQUIRES: !mlir-expensive-checks
+
// -----
// CHECK-DAG: #[[$MAP0:.*]] = affine_map<(d0) -> (d0 - 1)>
diff --git a/mlir/test/Dialect/EmitC/wrap-func-in-class.mlir b/mlir/test/Dialect/EmitC/wrap-func-in-class.mlir
index 91010689e1e65..69a3186440817 100644
--- a/mlir/test/Dialect/EmitC/wrap-func-in-class.mlir
+++ b/mlir/test/Dialect/EmitC/wrap-func-in-class.mlir
@@ -2,6 +2,8 @@
// RUN: mlir-opt %s -wrap-emitc-func-in-class=func-name=execute -split-input-file | FileCheck %s --check-prefixes=EXECUTE
// RUN: mlir-opt %s -wrap-emitc-func-in-class=class-name-format=Custom_{} -split-input-file | FileCheck %s --check-prefixes=CLASS-NAME-FORMAT
+// REQUIRES: !mlir-expensive-checks
+
emitc.func @foo(%arg0 : !emitc.array<1xf32>) {
emitc.call_opaque "bar" (%arg0) : (!emitc.array<1xf32>) -> ()
emitc.return
diff --git a/mlir/test/Dialect/Linalg/continuous-tiling-full.mlir b/mlir/test/Dialect/Linalg/continuous-tiling-full.mlir
index e02aa0c4db44a..2eb06ac6a5299 100644
--- a/mlir/test/Dialect/Linalg/continuous-tiling-full.mlir
+++ b/mlir/test/Dialect/Linalg/continuous-tiling-full.mlir
@@ -1,5 +1,7 @@
// RUN: mlir-opt --transform-interpreter --canonicalize --split-input-file %s | FileCheck %s
+// REQUIRES: !mlir-expensive-checks
+
module attributes {transform.with_named_sequence} {
transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
%0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
diff --git a/mlir/test/Dialect/Linalg/decompose-pack-tile.mlir b/mlir/test/Dialect/Linalg/decompose-pack-tile.mlir
index 72fde5490a305..60cdce764f434 100644
--- a/mlir/test/Dialect/Linalg/decompose-pack-tile.mlir
+++ b/mlir/test/Dialect/Linalg/decompose-pack-tile.mlir
@@ -3,6 +3,8 @@
// RUN: -transform-interpreter=entry-point=decompose_pack \
// RUN: -transform-interpreter %s | FileCheck %s
+// REQUIRES: !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>
return %0 : tensor<1x1x4x8x8x32xf32>
diff --git a/mlir/test/Dialect/Linalg/decompose-unpack-tile.mlir b/mlir/test/Dialect/Linalg/decompose-unpack-tile.mlir
index 03437223f0d45..44d52e8cc41f8 100644
--- a/mlir/test/Dialect/Linalg/decompose-unpack-tile.mlir
+++ b/mlir/test/Dialect/Linalg/decompose-unpack-tile.mlir
@@ -3,6 +3,8 @@
// RUN: -transform-interpreter=entry-point=decompose_unpack \
// RUN: -transform-interpreter %s | FileCheck %s
+// REQUIRES: !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>
return %0 : tensor<1x1x128x64xf32>
diff --git a/mlir/test/Dialect/Linalg/drop-unit-extent-dims.mlir b/mlir/test/Dialect/Linalg/drop-unit-extent-dims.mlir
index 841d0e5f56512..5b06d09e13b3a 100644
--- a/mlir/test/Dialect/Linalg/drop-unit-extent-dims.mlir
+++ b/mlir/test/Dialect/Linalg/drop-unit-extent-dims.mlir
@@ -1,6 +1,8 @@
// RUN: mlir-opt %s -linalg-fold-unit-extent-dims -split-input-file | FileCheck %s
// RUN: mlir-opt %s -linalg-fold-unit-extent-dims="use-rank-reducing-slices" -cse -split-input-file | FileCheck %s --check-prefix=CHECK-SLICES
+// REQUIRES: !mlir-expensive-checks
+
#accesses = [
affine_map<(i, j, k, l, m) -> (i, k, m)>,
affine_map<(i, j, k, l, m) -> ()>,
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 4660cc75a1940..d0bb5308e222a 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,5 +1,7 @@
// RUN: mlir-opt %s --transform-interpreter --split-input-file -resolve-shaped-type-result-dims -canonicalize | FileCheck %s
+// REQUIRES: !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
// presence of _scalable_ vectors (these are introduced through scalable
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 456a5ea453963..d262f6646ee0b 100644
--- a/mlir/test/Dialect/Linalg/transform-op-tile-pack-unpack.mlir
+++ b/mlir/test/Dialect/Linalg/transform-op-tile-pack-unpack.mlir
@@ -1,5 +1,7 @@
// RUN: mlir-opt %s -transform-interpreter -canonicalize -cse -split-input-file | FileCheck %s
+// REQUIRES: !mlir-expensive-checks
+
// CHECK-DAG: #[[MAP0:.+]] = affine_map<(d0) -> (d0 * 32)>
// CHECK: func.func @NC_to_NCnc
// CHECK-SAME: %[[IN:.*]]: tensor<128x256xf32>,
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 445ded4bfcafb..495bbffb36c46 100644
--- a/mlir/test/Dialect/Linalg/transform-tile-and-winograd-rewrite.mlir
+++ b/mlir/test/Dialect/Linalg/transform-tile-and-winograd-rewrite.mlir
@@ -1,5 +1,7 @@
// RUN: mlir-opt %s -transform-interpreter -canonicalize --split-input-file | FileCheck %s
+// REQUIRES: !mlir-expensive-checks
+
func.func @conv2d(%arg0: tensor<2x10x10x5xf32>, %arg1: tensor<2x3x3x5xf32>, %arg2: tensor<2x8x8x2xf32>) -> tensor<2x8x8x2xf32> {
%0 = tensor.empty() : tensor<6x6x5x2xf32>
%1 = linalg.winograd_filter_transform fmr(F_4_3) ins(%arg1 : tensor<2x3x3x5xf32>) outs(%0 : tensor<6x6x5x2xf32>) -> tensor<6x6x5x2xf32>
diff --git a/mlir/test/Dialect/OpenACC/acc-if-clause-lowering.mlir b/mlir/test/Dialect/OpenACC/acc-if-clause-lowering.mlir
index 9cc0df1dfb107..450e875c5a7c2 100644
--- a/mlir/test/Dialect/OpenACC/acc-if-clause-lowering.mlir
+++ b/mlir/test/Dialect/OpenACC/acc-if-clause-lowering.mlir
@@ -1,5 +1,7 @@
// RUN: mlir-opt %s -acc-if-clause-lowering -split-input-file | FileCheck %s
+// REQUIRES: !mlir-expensive-checks
+
// Test acc.parallel with if condition
// CHECK-LABEL: func.func @test_parallel_if
func.func @test_parallel_if(%arg0: memref<10xi32>, %cond: i1) {
diff --git a/mlir/test/Dialect/OpenACC/compute-region-canonicalize.mlir b/mlir/test/Dialect/OpenACC/compute-region-canonicalize.mlir
index 68b1193508ad6..3392d1867c1bf 100644
--- a/mlir/test/Dialect/OpenACC/compute-region-canonicalize.mlir
+++ b/mlir/test/Dialect/OpenACC/compute-region-canonicalize.mlir
@@ -1,5 +1,7 @@
// RUN: mlir-opt -canonicalize -split-input-file %s | FileCheck %s
+// REQUIRES: !mlir-expensive-checks
+
// -----
// CHECK-LABEL: func @merge_duplicate_ins
diff --git a/mlir/test/Dialect/SCF/canonicalize.mlir b/mlir/test/Dialect/SCF/canonicalize.mlir
index c324d34942bf8..c1c608bf70ed1 100644
--- a/mlir/test/Dialect/SCF/canonicalize.mlir
+++ b/mlir/test/Dialect/SCF/canonicalize.mlir
@@ -1,5 +1,7 @@
// RUN: mlir-opt %s -pass-pipeline='builtin.module(func.func(canonicalize{test-convergence}))' -split-input-file | FileCheck %s
+// REQUIRES: !mlir-expensive-checks
+
func.func @single_iteration_some(%A: memref<?x?x?xi32>) {
%c0 = arith.constant 0 : index
%c1 = arith.constant 1 : index
diff --git a/mlir/test/Dialect/SCF/for-loop-peeling.mlir b/mlir/test/Dialect/SCF/for-loop-peeling.mlir
index 6caa4bd50bad8..03f7fe94a675f 100644
--- a/mlir/test/Dialect/SCF/for-loop-peeling.mlir
+++ b/mlir/test/Dialect/SCF/for-loop-peeling.mlir
@@ -1,6 +1,8 @@
// 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
+// REQUIRES: !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)>
// CHECK: func @fully_dynamic_bounds(
diff --git a/mlir/test/Dialect/SparseTensor/encoding_with_symbols.mlir b/mlir/test/Dialect/SparseTensor/encoding_with_symbols.mlir
index a019a0e9476b6..6ac557cb5c21a 100644
--- a/mlir/test/Dialect/SparseTensor/encoding_with_symbols.mlir
+++ b/mlir/test/Dialect/SparseTensor/encoding_with_symbols.mlir
@@ -1,5 +1,7 @@
// RUN: mlir-opt %s -split-input-file -sparsification-and-bufferization -verify-diagnostics | FileCheck %s
+// REQUIRES: !mlir-expensive-checks
+
// Tests that mlir-opt does not crash when parsing sparse tensor encodings with symbols.
// CHECK-DAG: #[[$SPARSE_0:.*]] = #sparse_tensor.encoding<{ map = (d0, d1, d2) -> (d0 : dense, d1 : dense, d2 : compressed) }>
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 4e4d2c27b0966..84c3d04bc7a3f 100644
--- a/mlir/test/Dialect/SparseTensor/fuse_sparse_convert_into_producer.mlir
+++ b/mlir/test/Dialect/SparseTensor/fuse_sparse_convert_into_producer.mlir
@@ -1,6 +1,8 @@
// 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
+// REQUIRES: !mlir-expensive-checks
+
#trait = {
indexing_maps = [
affine_map<(d0, d1, d2, d3) -> (d0, d1, d2, d3)>,
diff --git a/mlir/test/Dialect/X86/move-acc-for-contract-loop.mlir b/mlir/test/Dialect/X86/move-acc-for-contract-loop.mlir
index 8007f5cd8fc8d..2d2fa708357e1 100644
--- a/mlir/test/Dialect/X86/move-acc-for-contract-loop.mlir
+++ b/mlir/test/Dialect/X86/move-acc-for-contract-loop.mlir
@@ -1,5 +1,7 @@
// RUN: mlir-opt %s -transform-interpreter -cse -split-input-file | FileCheck %s
+// REQUIRES: !mlir-expensive-checks
+
!vecA = vector<1x1x2xbf16>
!vecB = vector<1x2x16xbf16>
!vecC = vector<1x16xf32>
diff --git a/mlir/test/Dialect/X86/vector-contract-bf16-to-fma.mlir b/mlir/test/Dialect/X86/vector-contract-bf16-to-fma.mlir
index 94abf95051854..fba38d26a3743 100644
--- a/mlir/test/Dialect/X86/vector-contract-bf16-to-fma.mlir
+++ b/mlir/test/Dialect/X86/vector-contract-bf16-to-fma.mlir
@@ -1,5 +1,7 @@
// RUN: mlir-opt %s -transform-interpreter -cse -split-input-file | FileCheck %s
+// REQUIRES: !mlir-expensive-checks
+
!vecA = vector<1x1x1x2xbf16>
!vecB = vector<1x1x8x2xbf16>
!vecC = vector<1x8xf32>
diff --git a/mlir/test/Dialect/X86/vector-contract-to-packed-type-dotproduct.mlir b/mlir/test/Dialect/X86/vector-contract-to-packed-type-dotproduct.mlir
index 181a789a9adc0..249f20172b21c 100644
--- a/mlir/test/Dialect/X86/vector-contract-to-packed-type-dotproduct.mlir
+++ b/mlir/test/Dialect/X86/vector-contract-to-packed-type-dotproduct.mlir
@@ -1,5 +1,7 @@
// RUN: mlir-opt %s -transform-interpreter -cse -split-input-file | FileCheck %s
+// REQUIRES: !mlir-expensive-checks
+
!vecA = vector<1x1x1x2xbf16>
!vecB = vector<1x1x16x2xbf16>
!vecC = vector<1x16xf32>
diff --git a/mlir/test/Dialect/XeGPU/array-len-op-unit.mlir b/mlir/test/Dialect/XeGPU/array-len-op-unit.mlir
index 340a10a99cb88..eb0ba02800683 100644
--- a/mlir/test/Dialect/XeGPU/array-len-op-unit.mlir
+++ b/mlir/test/Dialect/XeGPU/array-len-op-unit.mlir
@@ -1,5 +1,7 @@
// RUN: mlir-opt --test-xegpu-array-length-optimization --split-input-file %s | FileCheck %s
+// REQUIRES: !mlir-expensive-checks
+
gpu.module @test {
// CHECK-LABEL: func.func @test_load_nd_with_extract_slice
// CHECK-SAME: (%[[ARG0:.*]]: memref<4096x4096xf16>)
diff --git a/mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/pack-unpack-mmt4d.mlir b/mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/pack-unpack-mmt4d.mlir
index eb1e7a87d932f..7c7f3189c6c5e 100644
--- a/mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/pack-unpack-mmt4d.mlir
+++ b/mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/pack-unpack-mmt4d.mlir
@@ -1,3 +1,5 @@
+// REQUIRES: !mlir-expensive-checks
+
// DEFINE: %{compile} = mlir-opt %s \
// DEFINE: -transform-interpreter -test-transform-dialect-erase-schedule \
// DEFINE: -canonicalize -test-lower-to-arm-sme -convert-vector-to-llvm="enable-arm-sve" \
diff --git a/mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/pack-scalable-inner-tile.mlir b/mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/pack-scalable-inner-tile.mlir
index ee865d95c5ace..fe9e164948c78 100644
--- a/mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/pack-scalable-inner-tile.mlir
+++ b/mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/pack-scalable-inner-tile.mlir
@@ -1,4 +1,4 @@
-// REQUIRES: arm-emulator
+// REQUIRES: arm-emulator, !mlir-expensive-checks
// This test is a clone of pack-dynamic-inner-tile.mlir, but the inner tile is
// vector.vscale * %c8 rather than %c8. In order to demonstrate the impact of
diff --git a/mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/pack-unpack-mmt4d.mlir b/mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/pack-unpack-mmt4d.mlir
index a5cc70119f595..c794be4a7cd9c 100644
--- a/mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/pack-unpack-mmt4d.mlir
+++ b/mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/pack-unpack-mmt4d.mlir
@@ -1,3 +1,5 @@
+// REQUIRES: !mlir-expensive-checks
+
// DEFINE: %{compile} = mlir-opt %s \
// DEFINE: -transform-interpreter -test-transform-dialect-erase-schedule \
// DEFINE: -cse -canonicalize -test-lower-to-llvm
diff --git a/mlir/test/Integration/Dialect/Linalg/CPU/mmt4d.mlir b/mlir/test/Integration/Dialect/Linalg/CPU/mmt4d.mlir
index cab345043e43f..778e1c97e7bf8 100644
--- a/mlir/test/Integration/Dialect/Linalg/CPU/mmt4d.mlir
+++ b/mlir/test/Integration/Dialect/Linalg/CPU/mmt4d.mlir
@@ -1,3 +1,5 @@
+// REQUIRES: !mlir-expensive-checks
+
// DEFINE: %{compile} = mlir-opt %s \
// DEFINE: -transform-interpreter -test-transform-dialect-erase-schedule \
// DEFINE: -one-shot-bufferize="bufferize-function-boundaries" -buffer-deallocation-pipeline -cse -canonicalize -convert-vector-to-scf -test-lower-to-llvm -o %t
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 187d7b862604b..fe8c1795a7a04 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,3 +1,5 @@
+// REQUIRES: !mlir-expensive-checks
+
// DEFINE: %{compile} = mlir-opt %s \
// DEFINE: -transform-interpreter -test-transform-dialect-erase-schedule |\
// DEFINE: mlir-opt \
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 08dbe7c0ef345..daae947632b5e 100644
--- a/mlir/test/Integration/Dialect/Linalg/CPU/pack-unpack-mmt4d.mlir
+++ b/mlir/test/Integration/Dialect/Linalg/CPU/pack-unpack-mmt4d.mlir
@@ -1,3 +1,5 @@
+// REQUIRES: !mlir-expensive-checks
+
// DEFINE: %{compile} = mlir-opt %s \
// DEFINE: -transform-interpreter -test-transform-dialect-erase-schedule \
// DEFINE: -one-shot-bufferize="bufferize-function-boundaries" \
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 b62ca21e236ff..bff4db6e93564 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,3 +1,5 @@
+// REQUIRES: !mlir-expensive-checks
+
// DEFINE: %{compile} = mlir-opt %s \
// DEFINE: -transform-interpreter -test-transform-dialect-erase-schedule \
// DEFINE: --lower-vector-mask |\
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 48c584ea7fbd5..f8ec7a846d66b 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,3 +1,5 @@
+// REQUIRES: !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 a79235a314f3f..3a36cf30da570 100644
--- a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_block_matmul.mlir
+++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_block_matmul.mlir
@@ -1,3 +1,5 @@
+// REQUIRES: !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 84f4e0dd7ebef..229431725f0b1 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,3 +1,5 @@
+// REQUIRES: !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 42ed78df1eca2..ced7a47630baa 100644
--- a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_2d.mlir
+++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_2d.mlir
@@ -1,3 +1,5 @@
+// REQUIRES: !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 564d869af80da..ccf2ef2781cfd 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,3 +1,5 @@
+// REQUIRES: !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 ea51a5d030c0c..40eda80fa85f5 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,3 +1,5 @@
+// REQUIRES: !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 9e6626abea7d1..593767a129f46 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,3 +1,5 @@
+// REQUIRES: !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 b6697038b84db..5653e0aacf984 100644
--- a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_3d.mlir
+++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_3d.mlir
@@ -1,3 +1,5 @@
+// REQUIRES: !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 9f80cc8763d2a..dcd3adaf2f07a 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,3 +1,5 @@
+// REQUIRES: !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 bc6fd9b75c0d4..ffeaf4094a470 100644
--- a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conversion_block.mlir
+++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conversion_block.mlir
@@ -1,3 +1,5 @@
+// REQUIRES: !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 c9c346ad25d18..2891bbb5b8b1b 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,3 +1,5 @@
+// REQUIRES: !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 2d1f3a0e27ebd..1437a63062178 100644
--- a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_pooling_nhwc.mlir
+++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_pooling_nhwc.mlir
@@ -1,3 +1,5 @@
+// REQUIRES: !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 090323fbaabf9..0058f2e44065c 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,3 +1,5 @@
+// REQUIRES: !mlir-expensive-checks
+
//--------------------------------------------------------------------------------------------------
// WHEN CREATING A NEW TEST, PLEASE JUST COPY & PASTE WITHOUT EDITS.
//
diff --git a/mlir/test/Transforms/test-strict-pattern-driver.mlir b/mlir/test/Transforms/test-strict-pattern-driver.mlir
index c87444cba8e1a..728179f5a86df 100644
--- a/mlir/test/Transforms/test-strict-pattern-driver.mlir
+++ b/mlir/test/Transforms/test-strict-pattern-driver.mlir
@@ -1,3 +1,5 @@
+// REQUIRES: !mlir-expensive-checks
+
// RUN: mlir-opt \
// RUN: -test-strict-pattern-driver="strictness=AnyOp" \
// RUN: --split-input-file %s | FileCheck %s --check-prefix=CHECK-AN
diff --git a/mlir/test/lit.cfg.py b/mlir/test/lit.cfg.py
index 189c22adfe6b5..6801dbac1ced9 100644
--- a/mlir/test/lit.cfg.py
+++ b/mlir/test/lit.cfg.py
@@ -383,5 +383,8 @@ def have_host_jit_feature_support(feature_name):
if config.arm_emulator_executable:
config.available_features.add("arm-emulator")
+if config.mlir_expensive_pattern_api_checks:
+ config.available_features.add("mlir-expensive-checks")
+
if sys.version_info >= (3, 11):
config.available_features.add("python-ge-311")
diff --git a/mlir/test/lit.site.cfg.py.in b/mlir/test/lit.site.cfg.py.in
index 67bffb8f6e3cf..7145449459a64 100644
--- a/mlir/test/lit.site.cfg.py.in
+++ b/mlir/test/lit.site.cfg.py.in
@@ -12,6 +12,7 @@ config.llvm_shlib_dir = lit_config.substitute(path(r"@SHLIBDIR@"))
config.python_executable = "@Python3_EXECUTABLE@"
config.enable_assertions = @ENABLE_ASSERTIONS@
config.expensive_checks = "@EXPENSIVE_CHECKS@"
+config.mlir_expensive_pattern_api_checks = @MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS@
config.native_target = "@LLVM_NATIVE_ARCH@"
config.host_os = "@HOST_OS@"
config.host_cc = "@HOST_CC@"
>From 23223c8bdeb0ebf3f6a9437f09d5a2dc8bbdad09 Mon Sep 17 00:00:00 2001
From: Andrzej Warzynski <andrzej.warzynski at arm.com>
Date: Fri, 14 Aug 2026 17:18:41 +0000
Subject: [PATCH 2/3] Switch from REQUIRES to XFAIL
---
mlir/test/Conversion/SCFToAffine/scf-to-affine.mlir | 2 +-
mlir/test/Conversion/SCFToOpenMP/reductions.mlir | 2 +-
mlir/test/Conversion/SCFToOpenMP/scf-to-openmp.mlir | 2 +-
mlir/test/Conversion/SCFToOpenMP/vector-reduction.mlir | 2 +-
mlir/test/Dialect/Affine/canonicalize.mlir | 2 +-
mlir/test/Dialect/EmitC/wrap-func-in-class.mlir | 2 +-
mlir/test/Dialect/Linalg/continuous-tiling-full.mlir | 2 +-
mlir/test/Dialect/Linalg/decompose-pack-tile.mlir | 2 +-
mlir/test/Dialect/Linalg/decompose-unpack-tile.mlir | 2 +-
mlir/test/Dialect/Linalg/drop-unit-extent-dims.mlir | 2 +-
.../Dialect/Linalg/transform-op-peel-and-vectorize-conv.mlir | 2 +-
mlir/test/Dialect/Linalg/transform-op-tile-pack-unpack.mlir | 2 +-
.../Dialect/Linalg/transform-tile-and-winograd-rewrite.mlir | 2 +-
mlir/test/Dialect/OpenACC/acc-if-clause-lowering.mlir | 2 +-
mlir/test/Dialect/OpenACC/compute-region-canonicalize.mlir | 2 +-
mlir/test/Dialect/SCF/canonicalize.mlir | 2 +-
mlir/test/Dialect/SCF/for-loop-peeling.mlir | 2 +-
mlir/test/Dialect/SparseTensor/encoding_with_symbols.mlir | 2 +-
.../Dialect/SparseTensor/fuse_sparse_convert_into_producer.mlir | 2 +-
mlir/test/Dialect/X86/move-acc-for-contract-loop.mlir | 2 +-
mlir/test/Dialect/X86/vector-contract-bf16-to-fma.mlir | 2 +-
.../Dialect/X86/vector-contract-to-packed-type-dotproduct.mlir | 2 +-
mlir/test/Dialect/XeGPU/array-len-op-unit.mlir | 2 +-
.../Dialect/Linalg/CPU/ArmSME/pack-unpack-mmt4d.mlir | 2 +-
.../Dialect/Linalg/CPU/ArmSVE/pack-unpack-mmt4d.mlir | 2 +-
mlir/test/Integration/Dialect/Linalg/CPU/mmt4d.mlir | 2 +-
.../Integration/Dialect/Linalg/CPU/pack-dynamic-inner-tile.mlir | 2 +-
mlir/test/Integration/Dialect/Linalg/CPU/pack-unpack-mmt4d.mlir | 2 +-
.../Dialect/Linalg/CPU/unpack-dynamic-inner-tile.mlir | 2 +-
.../Dialect/SparseTensor/CPU/dual_sparse_conv_2d.mlir | 2 +-
.../Dialect/SparseTensor/CPU/sparse_block_matmul.mlir | 2 +-
.../Dialect/SparseTensor/CPU/sparse_conv_1d_nwc_wcf.mlir | 2 +-
.../Integration/Dialect/SparseTensor/CPU/sparse_conv_2d.mlir | 2 +-
.../Integration/Dialect/SparseTensor/CPU/sparse_conv_2d_55.mlir | 2 +-
.../Dialect/SparseTensor/CPU/sparse_conv_2d_nchw_fchw.mlir | 2 +-
.../Dialect/SparseTensor/CPU/sparse_conv_2d_nhwc_hwcf.mlir | 2 +-
.../Integration/Dialect/SparseTensor/CPU/sparse_conv_3d.mlir | 2 +-
.../Dialect/SparseTensor/CPU/sparse_conv_3d_ndhwc_dhwcf.mlir | 2 +-
.../Dialect/SparseTensor/CPU/sparse_conversion_block.mlir | 2 +-
.../SparseTensor/CPU/sparse_dilated_conv_2d_nhwc_hwcf.mlir | 2 +-
.../Dialect/SparseTensor/CPU/sparse_pooling_nhwc.mlir | 2 +-
.../SparseTensor/CPU/sparse_strided_conv_2d_nhwc_hwcf.mlir | 2 +-
mlir/test/Transforms/test-strict-pattern-driver.mlir | 2 +-
43 files changed, 43 insertions(+), 43 deletions(-)
diff --git a/mlir/test/Conversion/SCFToAffine/scf-to-affine.mlir b/mlir/test/Conversion/SCFToAffine/scf-to-affine.mlir
index d339eb4b9764b..a489e3c3ce9ef 100644
--- a/mlir/test/Conversion/SCFToAffine/scf-to-affine.mlir
+++ b/mlir/test/Conversion/SCFToAffine/scf-to-affine.mlir
@@ -1,6 +1,6 @@
// RUN: mlir-opt --raise-scf-to-affine --split-input-file %s | FileCheck %s
-// REQUIRES: !mlir-expensive-checks
+// XFAIL: mlir-expensive-checks
// CHECK-LABEL: @constant_step
// CHECK-SAME: %[[ARR:.*]]: memref<?xi32>, %[[LB:.*]]: index, %[[UB:.*]]: index
diff --git a/mlir/test/Conversion/SCFToOpenMP/reductions.mlir b/mlir/test/Conversion/SCFToOpenMP/reductions.mlir
index 3a3ae645c4008..879291d58b615 100644
--- a/mlir/test/Conversion/SCFToOpenMP/reductions.mlir
+++ b/mlir/test/Conversion/SCFToOpenMP/reductions.mlir
@@ -1,6 +1,6 @@
// RUN: mlir-opt -convert-scf-to-openmp -split-input-file %s | FileCheck %s
-// REQUIRES: !mlir-expensive-checks
+// XFAIL: mlir-expensive-checks
// CHECK: omp.declare_reduction @[[$REDF:.*]] : f32
diff --git a/mlir/test/Conversion/SCFToOpenMP/scf-to-openmp.mlir b/mlir/test/Conversion/SCFToOpenMP/scf-to-openmp.mlir
index 0a6f16b8b5520..e41b23c36c047 100644
--- a/mlir/test/Conversion/SCFToOpenMP/scf-to-openmp.mlir
+++ b/mlir/test/Conversion/SCFToOpenMP/scf-to-openmp.mlir
@@ -1,6 +1,6 @@
// RUN: mlir-opt -convert-scf-to-openmp='num-threads=4' %s | FileCheck %s
-// REQUIRES: !mlir-expensive-checks
+// XFAIL: mlir-expensive-checks
// CHECK-LABEL: @parallel
func.func @parallel(%arg0: index, %arg1: index, %arg2: index,
diff --git a/mlir/test/Conversion/SCFToOpenMP/vector-reduction.mlir b/mlir/test/Conversion/SCFToOpenMP/vector-reduction.mlir
index 93a1bd80ca9b1..b146aec0e287d 100644
--- a/mlir/test/Conversion/SCFToOpenMP/vector-reduction.mlir
+++ b/mlir/test/Conversion/SCFToOpenMP/vector-reduction.mlir
@@ -1,6 +1,6 @@
// RUN: mlir-opt %s --convert-scf-to-openmp | FileCheck %s
-// REQUIRES: !mlir-expensive-checks
+// XFAIL: mlir-expensive-checks
// CHECK-LABEL: omp.declare_reduction @__scf_reduction : vector<2xi1>
// CHECK: init {
diff --git a/mlir/test/Dialect/Affine/canonicalize.mlir b/mlir/test/Dialect/Affine/canonicalize.mlir
index de1af4dbf9b00..1b13d29335523 100644
--- a/mlir/test/Dialect/Affine/canonicalize.mlir
+++ b/mlir/test/Dialect/Affine/canonicalize.mlir
@@ -1,7 +1,7 @@
// RUN: mlir-opt -allow-unregistered-dialect %s -split-input-file -canonicalize="test-convergence" | FileCheck %s
// RUN: mlir-opt -allow-unregistered-dialect %s -split-input-file -canonicalize="test-convergence top-down=0" | FileCheck %s --check-prefix=CHECK-BOTTOM-UP
-// REQUIRES: !mlir-expensive-checks
+// XFAIL: mlir-expensive-checks
// -----
diff --git a/mlir/test/Dialect/EmitC/wrap-func-in-class.mlir b/mlir/test/Dialect/EmitC/wrap-func-in-class.mlir
index 69a3186440817..9c7f042466c28 100644
--- a/mlir/test/Dialect/EmitC/wrap-func-in-class.mlir
+++ b/mlir/test/Dialect/EmitC/wrap-func-in-class.mlir
@@ -2,7 +2,7 @@
// RUN: mlir-opt %s -wrap-emitc-func-in-class=func-name=execute -split-input-file | FileCheck %s --check-prefixes=EXECUTE
// RUN: mlir-opt %s -wrap-emitc-func-in-class=class-name-format=Custom_{} -split-input-file | FileCheck %s --check-prefixes=CLASS-NAME-FORMAT
-// REQUIRES: !mlir-expensive-checks
+// XFAIL: mlir-expensive-checks
emitc.func @foo(%arg0 : !emitc.array<1xf32>) {
emitc.call_opaque "bar" (%arg0) : (!emitc.array<1xf32>) -> ()
diff --git a/mlir/test/Dialect/Linalg/continuous-tiling-full.mlir b/mlir/test/Dialect/Linalg/continuous-tiling-full.mlir
index 2eb06ac6a5299..fd72c4ee4e015 100644
--- a/mlir/test/Dialect/Linalg/continuous-tiling-full.mlir
+++ b/mlir/test/Dialect/Linalg/continuous-tiling-full.mlir
@@ -1,6 +1,6 @@
// RUN: mlir-opt --transform-interpreter --canonicalize --split-input-file %s | FileCheck %s
-// REQUIRES: !mlir-expensive-checks
+// 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 60cdce764f434..363db8f4d0932 100644
--- a/mlir/test/Dialect/Linalg/decompose-pack-tile.mlir
+++ b/mlir/test/Dialect/Linalg/decompose-pack-tile.mlir
@@ -3,7 +3,7 @@
// RUN: -transform-interpreter=entry-point=decompose_pack \
// RUN: -transform-interpreter %s | FileCheck %s
-// REQUIRES: !mlir-expensive-checks
+// 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 44d52e8cc41f8..86af4d63149e5 100644
--- a/mlir/test/Dialect/Linalg/decompose-unpack-tile.mlir
+++ b/mlir/test/Dialect/Linalg/decompose-unpack-tile.mlir
@@ -3,7 +3,7 @@
// RUN: -transform-interpreter=entry-point=decompose_unpack \
// RUN: -transform-interpreter %s | FileCheck %s
-// REQUIRES: !mlir-expensive-checks
+// 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/drop-unit-extent-dims.mlir b/mlir/test/Dialect/Linalg/drop-unit-extent-dims.mlir
index 5b06d09e13b3a..dd7ce878cae90 100644
--- a/mlir/test/Dialect/Linalg/drop-unit-extent-dims.mlir
+++ b/mlir/test/Dialect/Linalg/drop-unit-extent-dims.mlir
@@ -1,7 +1,7 @@
// RUN: mlir-opt %s -linalg-fold-unit-extent-dims -split-input-file | FileCheck %s
// RUN: mlir-opt %s -linalg-fold-unit-extent-dims="use-rank-reducing-slices" -cse -split-input-file | FileCheck %s --check-prefix=CHECK-SLICES
-// REQUIRES: !mlir-expensive-checks
+// XFAIL: mlir-expensive-checks
#accesses = [
affine_map<(i, j, k, l, m) -> (i, k, m)>,
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 d0bb5308e222a..18d53d631ce48 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,6 @@
// RUN: mlir-opt %s --transform-interpreter --split-input-file -resolve-shaped-type-result-dims -canonicalize | FileCheck %s
-// REQUIRES: !mlir-expensive-checks
+// 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 d262f6646ee0b..287ce5c86f8ed 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,6 @@
// RUN: mlir-opt %s -transform-interpreter -canonicalize -cse -split-input-file | FileCheck %s
-// REQUIRES: !mlir-expensive-checks
+// 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 495bbffb36c46..f8567b1e2eeb2 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,6 @@
// RUN: mlir-opt %s -transform-interpreter -canonicalize --split-input-file | FileCheck %s
-// REQUIRES: !mlir-expensive-checks
+// 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/OpenACC/acc-if-clause-lowering.mlir b/mlir/test/Dialect/OpenACC/acc-if-clause-lowering.mlir
index 450e875c5a7c2..cbdf9a1018804 100644
--- a/mlir/test/Dialect/OpenACC/acc-if-clause-lowering.mlir
+++ b/mlir/test/Dialect/OpenACC/acc-if-clause-lowering.mlir
@@ -1,6 +1,6 @@
// RUN: mlir-opt %s -acc-if-clause-lowering -split-input-file | FileCheck %s
-// REQUIRES: !mlir-expensive-checks
+// XFAIL: mlir-expensive-checks
// Test acc.parallel with if condition
// CHECK-LABEL: func.func @test_parallel_if
diff --git a/mlir/test/Dialect/OpenACC/compute-region-canonicalize.mlir b/mlir/test/Dialect/OpenACC/compute-region-canonicalize.mlir
index 3392d1867c1bf..35375a2a3e5f8 100644
--- a/mlir/test/Dialect/OpenACC/compute-region-canonicalize.mlir
+++ b/mlir/test/Dialect/OpenACC/compute-region-canonicalize.mlir
@@ -1,6 +1,6 @@
// RUN: mlir-opt -canonicalize -split-input-file %s | FileCheck %s
-// REQUIRES: !mlir-expensive-checks
+// XFAIL: mlir-expensive-checks
// -----
diff --git a/mlir/test/Dialect/SCF/canonicalize.mlir b/mlir/test/Dialect/SCF/canonicalize.mlir
index c1c608bf70ed1..bfb0ce080aee4 100644
--- a/mlir/test/Dialect/SCF/canonicalize.mlir
+++ b/mlir/test/Dialect/SCF/canonicalize.mlir
@@ -1,6 +1,6 @@
// RUN: mlir-opt %s -pass-pipeline='builtin.module(func.func(canonicalize{test-convergence}))' -split-input-file | FileCheck %s
-// REQUIRES: !mlir-expensive-checks
+// 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 03f7fe94a675f..2c37b17debf1f 100644
--- a/mlir/test/Dialect/SCF/for-loop-peeling.mlir
+++ b/mlir/test/Dialect/SCF/for-loop-peeling.mlir
@@ -1,7 +1,7 @@
// 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
-// REQUIRES: !mlir-expensive-checks
+// 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)>
diff --git a/mlir/test/Dialect/SparseTensor/encoding_with_symbols.mlir b/mlir/test/Dialect/SparseTensor/encoding_with_symbols.mlir
index 6ac557cb5c21a..653ad63cae8c5 100644
--- a/mlir/test/Dialect/SparseTensor/encoding_with_symbols.mlir
+++ b/mlir/test/Dialect/SparseTensor/encoding_with_symbols.mlir
@@ -1,6 +1,6 @@
// RUN: mlir-opt %s -split-input-file -sparsification-and-bufferization -verify-diagnostics | FileCheck %s
-// REQUIRES: !mlir-expensive-checks
+// XFAIL: mlir-expensive-checks
// Tests that mlir-opt does not crash when parsing sparse tensor encodings with symbols.
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 84c3d04bc7a3f..6a43631246769 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,7 @@
// 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
-// REQUIRES: !mlir-expensive-checks
+// XFAIL: mlir-expensive-checks
#trait = {
indexing_maps = [
diff --git a/mlir/test/Dialect/X86/move-acc-for-contract-loop.mlir b/mlir/test/Dialect/X86/move-acc-for-contract-loop.mlir
index 2d2fa708357e1..cc277b57bd846 100644
--- a/mlir/test/Dialect/X86/move-acc-for-contract-loop.mlir
+++ b/mlir/test/Dialect/X86/move-acc-for-contract-loop.mlir
@@ -1,6 +1,6 @@
// RUN: mlir-opt %s -transform-interpreter -cse -split-input-file | FileCheck %s
-// REQUIRES: !mlir-expensive-checks
+// XFAIL: mlir-expensive-checks
!vecA = vector<1x1x2xbf16>
!vecB = vector<1x2x16xbf16>
diff --git a/mlir/test/Dialect/X86/vector-contract-bf16-to-fma.mlir b/mlir/test/Dialect/X86/vector-contract-bf16-to-fma.mlir
index fba38d26a3743..67533435c7eb8 100644
--- a/mlir/test/Dialect/X86/vector-contract-bf16-to-fma.mlir
+++ b/mlir/test/Dialect/X86/vector-contract-bf16-to-fma.mlir
@@ -1,6 +1,6 @@
// RUN: mlir-opt %s -transform-interpreter -cse -split-input-file | FileCheck %s
-// REQUIRES: !mlir-expensive-checks
+// XFAIL: mlir-expensive-checks
!vecA = vector<1x1x1x2xbf16>
!vecB = vector<1x1x8x2xbf16>
diff --git a/mlir/test/Dialect/X86/vector-contract-to-packed-type-dotproduct.mlir b/mlir/test/Dialect/X86/vector-contract-to-packed-type-dotproduct.mlir
index 249f20172b21c..2769f9ec3fcb9 100644
--- a/mlir/test/Dialect/X86/vector-contract-to-packed-type-dotproduct.mlir
+++ b/mlir/test/Dialect/X86/vector-contract-to-packed-type-dotproduct.mlir
@@ -1,6 +1,6 @@
// RUN: mlir-opt %s -transform-interpreter -cse -split-input-file | FileCheck %s
-// REQUIRES: !mlir-expensive-checks
+// XFAIL: mlir-expensive-checks
!vecA = vector<1x1x1x2xbf16>
!vecB = vector<1x1x16x2xbf16>
diff --git a/mlir/test/Dialect/XeGPU/array-len-op-unit.mlir b/mlir/test/Dialect/XeGPU/array-len-op-unit.mlir
index eb0ba02800683..ba1bd97125090 100644
--- a/mlir/test/Dialect/XeGPU/array-len-op-unit.mlir
+++ b/mlir/test/Dialect/XeGPU/array-len-op-unit.mlir
@@ -1,6 +1,6 @@
// RUN: mlir-opt --test-xegpu-array-length-optimization --split-input-file %s | FileCheck %s
-// REQUIRES: !mlir-expensive-checks
+// XFAIL: mlir-expensive-checks
gpu.module @test {
// CHECK-LABEL: func.func @test_load_nd_with_extract_slice
diff --git a/mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/pack-unpack-mmt4d.mlir b/mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/pack-unpack-mmt4d.mlir
index 7c7f3189c6c5e..aa9f90e6b3b8b 100644
--- a/mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/pack-unpack-mmt4d.mlir
+++ b/mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/pack-unpack-mmt4d.mlir
@@ -1,4 +1,4 @@
-// REQUIRES: !mlir-expensive-checks
+// 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/ArmSVE/pack-unpack-mmt4d.mlir b/mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/pack-unpack-mmt4d.mlir
index c794be4a7cd9c..da517bbbe6789 100644
--- a/mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/pack-unpack-mmt4d.mlir
+++ b/mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/pack-unpack-mmt4d.mlir
@@ -1,4 +1,4 @@
-// REQUIRES: !mlir-expensive-checks
+// 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/mmt4d.mlir b/mlir/test/Integration/Dialect/Linalg/CPU/mmt4d.mlir
index 778e1c97e7bf8..fe969c4770cf7 100644
--- a/mlir/test/Integration/Dialect/Linalg/CPU/mmt4d.mlir
+++ b/mlir/test/Integration/Dialect/Linalg/CPU/mmt4d.mlir
@@ -1,4 +1,4 @@
-// REQUIRES: !mlir-expensive-checks
+// 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 fe8c1795a7a04..abf890f29266b 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,4 @@
-// REQUIRES: !mlir-expensive-checks
+// 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 daae947632b5e..62a77b1930844 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,4 @@
-// REQUIRES: !mlir-expensive-checks
+// 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 bff4db6e93564..e1ea476adbe4a 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,4 @@
-// REQUIRES: !mlir-expensive-checks
+// 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 f8ec7a846d66b..d8759482f7ae6 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,4 @@
-// REQUIRES: !mlir-expensive-checks
+// 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 3a36cf30da570..da0ed19d31e9c 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,4 @@
-// REQUIRES: !mlir-expensive-checks
+// 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 229431725f0b1..f51d50c84efea 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,4 @@
-// REQUIRES: !mlir-expensive-checks
+// 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 ced7a47630baa..8d3671c0ab0aa 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,4 @@
-// REQUIRES: !mlir-expensive-checks
+// 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 ccf2ef2781cfd..244436cddd92c 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,4 @@
-// REQUIRES: !mlir-expensive-checks
+// 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 40eda80fa85f5..771a8391e5c75 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,4 @@
-// REQUIRES: !mlir-expensive-checks
+// 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 593767a129f46..5dfe79372d3c7 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,4 @@
-// REQUIRES: !mlir-expensive-checks
+// 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 5653e0aacf984..78081c38b68c5 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,4 @@
-// REQUIRES: !mlir-expensive-checks
+// 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 dcd3adaf2f07a..02b593f6c8284 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,4 @@
-// REQUIRES: !mlir-expensive-checks
+// 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 ffeaf4094a470..c1a32e9c5f489 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,4 @@
-// REQUIRES: !mlir-expensive-checks
+// 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 2891bbb5b8b1b..b4229d7ae0569 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,4 @@
-// REQUIRES: !mlir-expensive-checks
+// 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 1437a63062178..a693b74d8571d 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,4 @@
-// REQUIRES: !mlir-expensive-checks
+// 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 0058f2e44065c..05d96c9b38f4c 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,4 @@
-// REQUIRES: !mlir-expensive-checks
+// XFAIL: mlir-expensive-checks
//--------------------------------------------------------------------------------------------------
// WHEN CREATING A NEW TEST, PLEASE JUST COPY & PASTE WITHOUT EDITS.
diff --git a/mlir/test/Transforms/test-strict-pattern-driver.mlir b/mlir/test/Transforms/test-strict-pattern-driver.mlir
index 728179f5a86df..b4b620e1519b2 100644
--- a/mlir/test/Transforms/test-strict-pattern-driver.mlir
+++ b/mlir/test/Transforms/test-strict-pattern-driver.mlir
@@ -1,4 +1,4 @@
-// REQUIRES: !mlir-expensive-checks
+// XFAIL: mlir-expensive-checks
// RUN: mlir-opt \
// RUN: -test-strict-pattern-driver="strictness=AnyOp" \
>From e1921bf4fb6a256da7b15def50733faa7947e148 Mon Sep 17 00:00:00 2001
From: Andrzej Warzynski <andrzej.warzynski at arm.com>
Date: Mon, 17 Aug 2026 09:10:57 +0000
Subject: [PATCH 3/3] Address comments from Alex
---
mlir/test/CMakeLists.txt | 2 +-
.../Dialect/Linalg/CPU/ArmSVE/pack-scalable-inner-tile.mlir | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/mlir/test/CMakeLists.txt b/mlir/test/CMakeLists.txt
index 9fdbacfb860be..d4d993796c20d 100644
--- a/mlir/test/CMakeLists.txt
+++ b/mlir/test/CMakeLists.txt
@@ -73,6 +73,7 @@ llvm_canonicalize_cmake_booleans(
LLVM_INCLUDE_SPIRV_TOOLS_TESTS
LLVM_HAS_AMDGPU_TARGET
MLIR_ENABLE_BINDINGS_PYTHON
+ MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS
MLIR_ENABLE_PYTHON_STABLE_ABI
MLIR_ENABLE_CUDA_RUNNER
MLIR_ENABLE_ROCM_RUNNER
@@ -89,7 +90,6 @@ llvm_canonicalize_cmake_booleans(
MLIR_RUN_CUDA_SM80_LT_TESTS
MLIR_RUN_CUDA_SM90_TESTS
BUILD_SHARED_LIBS
- MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS
)
configure_lit_site_cfg(
diff --git a/mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/pack-scalable-inner-tile.mlir b/mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/pack-scalable-inner-tile.mlir
index fe9e164948c78..ce21de22b596f 100644
--- a/mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/pack-scalable-inner-tile.mlir
+++ b/mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/pack-scalable-inner-tile.mlir
@@ -1,4 +1,5 @@
-// REQUIRES: arm-emulator, !mlir-expensive-checks
+// REQUIRES: arm-emulator
+// XFAIL: mlir-expensive-checks
// This test is a clone of pack-dynamic-inner-tile.mlir, but the inner tile is
// vector.vscale * %c8 rather than %c8. In order to demonstrate the impact of
More information about the Mlir-commits
mailing list