[Mlir-commits] [mlir] ea82af2 - [mlir][SPIR-V] Add Volatile function parameter round-trip tests (#232195)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Wed Oct 21 02:24:33 PDT 2026
Author: Alexander Shaposhnikov
Date: 2026-10-21T02:24:28-07:00
New Revision: ea82af272aa8ac9f3a223be1e5ef2f418e99f3ec
URL: https://github.com/llvm/llvm-project/commit/ea82af272aa8ac9f3a223be1e5ef2f418e99f3ec
DIFF: https://github.com/llvm/llvm-project/commit/ea82af272aa8ac9f3a223be1e5ef2f418e99f3ec.diff
LOG: [mlir][SPIR-V] Add Volatile function parameter round-trip tests (#232195)
The deserializer accepts Volatile function parameter decorations since
#230611 made it keep every unit decoration. Add round-trip tests for
function definitions and imported declarations, including Volatile
combined with Alignment and FuncParamAttr decorations, so the Volatile
path is covered explicitly.
Added:
Modified:
mlir/test/Target/SPIRV/function-parameter-attributes.mlir
Removed:
################################################################################
diff --git a/mlir/test/Target/SPIRV/function-parameter-attributes.mlir b/mlir/test/Target/SPIRV/function-parameter-attributes.mlir
index 3559aef561601..31b89fd29aed3 100644
--- a/mlir/test/Target/SPIRV/function-parameter-attributes.mlir
+++ b/mlir/test/Target/SPIRV/function-parameter-attributes.mlir
@@ -103,3 +103,33 @@ spirv.module Physical64 OpenCL requires #spirv.vce<v1.0, [Addresses, Kernel, Lin
linkage_attributes = #spirv.linkage_attributes<linkage_name = "external", linkage_type = <Import>>
}
}
+
+// -----
+
+// `volatile` pointer parameters are decorated with Volatile; it may be combined
+// with Alignment and FuncParamAttr decorations.
+spirv.module Physical64 OpenCL requires #spirv.vce<v1.0, [Addresses, Kernel, Linkage], []> {
+ // CHECK-LABEL: spirv.func @volatile(
+ // CHECK-SAME: !spirv.ptr<i32, CrossWorkgroup> {spirv.decoration = #spirv.decoration<Volatile>}
+ // CHECK-SAME: !spirv.ptr<i32, CrossWorkgroup> {spirv.alignment = 4 : i32, spirv.decoration = #spirv.decoration<Volatile>, spirv.func_param_attr = [#spirv.function_parameter_attribute<NoCapture>]}
+ spirv.func @volatile(
+ %a: !spirv.ptr<i32, CrossWorkgroup> {spirv.decoration = #spirv.decoration<Volatile>},
+ %b: !spirv.ptr<i32, CrossWorkgroup> {
+ spirv.alignment = 4 : i32,
+ spirv.decoration = #spirv.decoration<Volatile>,
+ spirv.func_param_attr = [#spirv.function_parameter_attribute<NoCapture>]}
+ ) "None" {
+ spirv.Return
+ }
+
+}
+
+// -----
+
+spirv.module Physical64 OpenCL requires #spirv.vce<v1.0, [Addresses, Kernel, Linkage], []> {
+ // CHECK-LABEL: spirv.func @volatile_declaration(
+ // CHECK-SAME: !spirv.ptr<i32, CrossWorkgroup> {spirv.decoration = #spirv.decoration<Volatile>}
+ spirv.func @volatile_declaration(%arg: !spirv.ptr<i32, CrossWorkgroup> {spirv.decoration = #spirv.decoration<Volatile>}) "None" attributes {
+ linkage_attributes = #spirv.linkage_attributes<linkage_name = "volatile_declaration", linkage_type = <Import>>
+ }
+}
More information about the Mlir-commits
mailing list