[Mlir-commits] [mlir] [mlir][spirv] Disable failing Intel SubgroupBlock* op tests (PR #166185)
Jakub Kuderski
llvmlistbot at llvm.org
Mon Nov 3 07:53:26 PST 2025
https://github.com/kuhar created https://github.com/llvm/llvm-project/pull/166185
Move them to a new test file that tests roundtrip but do not validate with spirv-val.
Issue: https://github.com/llvm/llvm-project/issues/166184
>From 8b7b1ded17bfdf57d5339ea3b7b54f2c17a8fe51 Mon Sep 17 00:00:00 2001
From: Jakub Kuderski <jakub at nod-labs.com>
Date: Mon, 3 Nov 2025 10:52:01 -0500
Subject: [PATCH] [mlir][spirv] Disable failing Intel SubgroupBlock* op tests
Move them to a new test file that tests roundtrip but do not validate
with spirv-val.
Issue: https://github.com/llvm/llvm-project/issues/166184
---
mlir/test/Target/SPIRV/group-ops.mlir | 26 +---------------
.../Target/SPIRV/subgroup-block-intel.mlir | 30 +++++++++++++++++++
2 files changed, 31 insertions(+), 25 deletions(-)
create mode 100644 mlir/test/Target/SPIRV/subgroup-block-intel.mlir
diff --git a/mlir/test/Target/SPIRV/group-ops.mlir b/mlir/test/Target/SPIRV/group-ops.mlir
index cf519cba961c5..94ecbb135cd4e 100644
--- a/mlir/test/Target/SPIRV/group-ops.mlir
+++ b/mlir/test/Target/SPIRV/group-ops.mlir
@@ -1,4 +1,4 @@
-// RUN: mlir-translate -no-implicit-module -test-spirv-roundtrip -split-input-file %s | FileCheck %s
+// RUN: mlir-translate --no-implicit-module --test-spirv-roundtrip --split-input-file %s | FileCheck %s
// RUN: %if spirv-tools %{ rm -rf %t %}
// RUN: %if spirv-tools %{ mkdir %t %}
@@ -24,30 +24,6 @@ spirv.module Logical GLSL450 requires #spirv.vce<v1.3, [Shader, Linkage, Subgrou
%0 = spirv.GroupBroadcast <Workgroup> %value, %localid : f32, vector<3xi32>
spirv.ReturnValue %0: f32
}
- // CHECK-LABEL: @subgroup_block_read_intel
- spirv.func @subgroup_block_read_intel(%ptr : !spirv.ptr<i32, StorageBuffer>) -> i32 "None" {
- // CHECK: spirv.INTEL.SubgroupBlockRead %{{.*}} : !spirv.ptr<i32, StorageBuffer> -> i32
- %0 = spirv.INTEL.SubgroupBlockRead %ptr : !spirv.ptr<i32, StorageBuffer> -> i32
- spirv.ReturnValue %0: i32
- }
- // CHECK-LABEL: @subgroup_block_read_intel_vector
- spirv.func @subgroup_block_read_intel_vector(%ptr : !spirv.ptr<i32, StorageBuffer>) -> vector<3xi32> "None" {
- // CHECK: spirv.INTEL.SubgroupBlockRead %{{.*}} : !spirv.ptr<i32, StorageBuffer> -> vector<3xi32>
- %0 = spirv.INTEL.SubgroupBlockRead %ptr : !spirv.ptr<i32, StorageBuffer> -> vector<3xi32>
- spirv.ReturnValue %0: vector<3xi32>
- }
- // CHECK-LABEL: @subgroup_block_write_intel
- spirv.func @subgroup_block_write_intel(%ptr : !spirv.ptr<i32, StorageBuffer>, %value: i32) -> () "None" {
- // CHECK: spirv.INTEL.SubgroupBlockWrite %{{.*}}, %{{.*}} : i32
- spirv.INTEL.SubgroupBlockWrite "StorageBuffer" %ptr, %value : i32
- spirv.Return
- }
- // CHECK-LABEL: @subgroup_block_write_intel_vector
- spirv.func @subgroup_block_write_intel_vector(%ptr : !spirv.ptr<i32, StorageBuffer>, %value: vector<3xi32>) -> () "None" {
- // CHECK: spirv.INTEL.SubgroupBlockWrite %{{.*}}, %{{.*}} : vector<3xi32>
- spirv.INTEL.SubgroupBlockWrite "StorageBuffer" %ptr, %value : vector<3xi32>
- spirv.Return
- }
// CHECK-LABEL: @group_iadd
spirv.func @group_iadd(%value: i32) -> i32 "None" {
// CHECK: spirv.GroupIAdd <Workgroup> <Reduce> %{{.*}} : i32
diff --git a/mlir/test/Target/SPIRV/subgroup-block-intel.mlir b/mlir/test/Target/SPIRV/subgroup-block-intel.mlir
new file mode 100644
index 0000000000000..304cfb87c1fe2
--- /dev/null
+++ b/mlir/test/Target/SPIRV/subgroup-block-intel.mlir
@@ -0,0 +1,30 @@
+// RUN: mlir-translate --no-implicit-module --test-spirv-roundtrip --split-input-file %s | FileCheck %s
+
+// TODO(#166184): Add spirv-val test once the serialization is fixed.
+
+spirv.module Logical GLSL450 requires #spirv.vce<v1.3, [Shader, Linkage, SubgroupBufferBlockIOINTEL], [SPV_KHR_storage_buffer_storage_class, SPV_INTEL_subgroups]> {
+ // CHECK-LABEL: @subgroup_block_read_intel
+ spirv.func @subgroup_block_read_intel(%ptr : !spirv.ptr<i32, StorageBuffer>) -> i32 "None" {
+ // CHECK: spirv.INTEL.SubgroupBlockRead %{{.*}} : !spirv.ptr<i32, StorageBuffer> -> i32
+ %0 = spirv.INTEL.SubgroupBlockRead %ptr : !spirv.ptr<i32, StorageBuffer> -> i32
+ spirv.ReturnValue %0: i32
+ }
+ // CHECK-LABEL: @subgroup_block_read_intel_vector
+ spirv.func @subgroup_block_read_intel_vector(%ptr : !spirv.ptr<i32, StorageBuffer>) -> vector<3xi32> "None" {
+ // CHECK: spirv.INTEL.SubgroupBlockRead %{{.*}} : !spirv.ptr<i32, StorageBuffer> -> vector<3xi32>
+ %0 = spirv.INTEL.SubgroupBlockRead %ptr : !spirv.ptr<i32, StorageBuffer> -> vector<3xi32>
+ spirv.ReturnValue %0: vector<3xi32>
+ }
+ // CHECK-LABEL: @subgroup_block_write_intel
+ spirv.func @subgroup_block_write_intel(%ptr : !spirv.ptr<i32, StorageBuffer>, %value: i32) -> () "None" {
+ // CHECK: spirv.INTEL.SubgroupBlockWrite %{{.*}}, %{{.*}} : i32
+ spirv.INTEL.SubgroupBlockWrite "StorageBuffer" %ptr, %value : i32
+ spirv.Return
+ }
+ // CHECK-LABEL: @subgroup_block_write_intel_vector
+ spirv.func @subgroup_block_write_intel_vector(%ptr : !spirv.ptr<i32, StorageBuffer>, %value: vector<3xi32>) -> () "None" {
+ // CHECK: spirv.INTEL.SubgroupBlockWrite %{{.*}}, %{{.*}} : vector<3xi32>
+ spirv.INTEL.SubgroupBlockWrite "StorageBuffer" %ptr, %value : vector<3xi32>
+ spirv.Return
+ }
+}
More information about the Mlir-commits
mailing list