1
1
// RUN: mlir-translate -no-implicit-module -test-spirv-roundtrip -split-input-file %s | FileCheck %s
2
2
3
- spirv.module Logical GLSL450 requires #spirv.vce <v1.0 , [Shader ], []> {
3
+ // RUN: %if spirv-tools %{ rm -rf %t %}
4
+ // RUN: %if spirv-tools %{ mkdir %t %}
5
+ // RUN: %if spirv-tools %{ mlir-translate --no-implicit-module --serialize-spirv --split-input-file --spirv-save-validation-files-with-prefix=%t/module %s %}
6
+ // RUN: %if spirv-tools %{ spirv-val %t %}
7
+
8
+ spirv.module Logical GLSL450 requires #spirv.vce <v1.0 , [Shader , Linkage ], []> {
4
9
spirv.func @bit_cast (%arg0 : f32 ) " None" {
5
10
// CHECK: {{%.*}} = spirv.Bitcast {{%.*}} : f32 to i32
6
11
%0 = spirv.Bitcast %arg0 : f32 to i32
@@ -14,7 +19,7 @@ spirv.module Logical GLSL450 requires #spirv.vce<v1.0, [Shader], []> {
14
19
15
20
// -----
16
21
17
- spirv.module Logical GLSL450 requires #spirv.vce <v1.0 , [Shader ], []> {
22
+ spirv.module Logical GLSL450 requires #spirv.vce <v1.0 , [Shader , Linkage , BFloat16TypeKHR , Float64 , Int64 ], [SPV_KHR_bfloat16 ]> {
18
23
spirv.func @convert_f_to_s (%arg0 : f32 ) -> i32 " None" {
19
24
// CHECK: {{%.*}} = spirv.ConvertFToS {{%.*}} : f32 to i32
20
25
%0 = spirv.ConvertFToS %arg0 : f32 to i32
@@ -104,7 +109,7 @@ spirv.module Logical GLSL450 requires #spirv.vce<v1.0, [Shader], []> {
104
109
105
110
// -----
106
111
107
- spirv.module Logical GLSL450 requires #spirv.vce <v1.0 , [Kernel ], []> {
112
+ spirv.module Physical64 OpenCL requires #spirv.vce <v1.0 , [Kernel , Linkage , GenericPointer ], []> {
108
113
spirv.func @ptr_cast_to_generic (%arg0 : !spirv.ptr <f32 , CrossWorkgroup >) " None" {
109
114
// CHECK: {{%.*}} = spirv.PtrCastToGeneric {{%.*}} : !spirv.ptr<f32, CrossWorkgroup> to !spirv.ptr<f32, Generic>
110
115
%0 = spirv.PtrCastToGeneric %arg0 : !spirv.ptr <f32 , CrossWorkgroup > to !spirv.ptr <f32 , Generic >
@@ -124,7 +129,7 @@ spirv.module Logical GLSL450 requires #spirv.vce<v1.0, [Kernel], []> {
124
129
125
130
// -----
126
131
127
- spirv.module Physical64 OpenCL requires #spirv.vce <v1.0 , [Kernel , Addresses ], []> {
132
+ spirv.module Physical64 OpenCL requires #spirv.vce <v1.0 , [Kernel , Addresses , Linkage , GenericPointer , Int64 ], []> {
128
133
spirv.func @covert_ptr_to_u (%arg0 : !spirv.ptr <i32 , Generic >) " None" {
129
134
// CHECK: {{%.*}} = spirv.ConvertPtrToU {{%.*}} : !spirv.ptr<i32, Generic> to i32
130
135
%0 = spirv.ConvertPtrToU %arg0 : !spirv.ptr <i32 , Generic > to i32
@@ -144,7 +149,7 @@ spirv.module Physical64 OpenCL requires #spirv.vce<v1.0, [Kernel, Addresses], []
144
149
145
150
// -----
146
151
147
- spirv.module PhysicalStorageBuffer64 OpenCL requires #spirv.vce <v1.0 , [Kernel , Addresses , PhysicalStorageBufferAddresses ], []> {
152
+ spirv.module PhysicalStorageBuffer64 OpenCL requires #spirv.vce <v1.0 , [Kernel , Addresses , PhysicalStorageBufferAddresses , Linkage ], [SPV_EXT_physical_storage_buffer ]> {
148
153
spirv.func @covert_ptr_to_u_PhysicalStorageBuffer (%arg0 : !spirv.ptr <i32 , PhysicalStorageBuffer > { spirv.decoration = #spirv.decoration <Aliased >} ) " None" {
149
154
// CHECK: {{%.*}} = spirv.ConvertPtrToU {{%.*}} : !spirv.ptr<i32, PhysicalStorageBuffer> to i32
150
155
%0 = spirv.ConvertPtrToU %arg0 : !spirv.ptr <i32 , PhysicalStorageBuffer > to i32
@@ -154,7 +159,7 @@ spirv.module PhysicalStorageBuffer64 OpenCL requires #spirv.vce<v1.0, [Kernel, A
154
159
155
160
// -----
156
161
157
- spirv.module Physical64 OpenCL requires #spirv.vce <v1.0 , [Kernel , Addresses ], []> {
162
+ spirv.module Physical64 OpenCL requires #spirv.vce <v1.0 , [Kernel , Addresses , Linkage , GenericPointer , Int64 ], []> {
158
163
spirv.func @covert_u_to_ptr (%arg0 : i32 ) " None" {
159
164
// CHECK: {{%.*}} = spirv.ConvertUToPtr {{%.*}} : i32 to !spirv.ptr<i32, Generic>
160
165
%0 = spirv.ConvertUToPtr %arg0 : i32 to !spirv.ptr <i32 , Generic >
@@ -174,7 +179,7 @@ spirv.module Physical64 OpenCL requires #spirv.vce<v1.0, [Kernel, Addresses], []
174
179
175
180
// -----
176
181
177
- spirv.module PhysicalStorageBuffer64 OpenCL requires #spirv.vce <v1.0 , [Kernel , Addresses , PhysicalStorageBufferAddresses ], []> {
182
+ spirv.module PhysicalStorageBuffer64 OpenCL requires #spirv.vce <v1.0 , [Kernel , Addresses , PhysicalStorageBufferAddresses , Linkage ], [SPV_EXT_physical_storage_buffer ]> {
178
183
spirv.func @covert_u_to_ptr_PhysicalStorageBuffer (%arg0 : i32 ) " None" {
179
184
// CHECK: {{%.*}} = spirv.ConvertUToPtr {{%.*}} : i32 to !spirv.ptr<i32, PhysicalStorageBuffer>
180
185
%0 = spirv.ConvertUToPtr %arg0 : i32 to !spirv.ptr <i32 , PhysicalStorageBuffer >
0 commit comments