11// RUN: mlir-translate -no-implicit-module -test-spirv-roundtrip %s | FileCheck %s
22
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 , Addresses , Float64 , Int64 , Linkage ], [SPV_KHR_storage_buffer_storage_class ]> {
49 // CHECK: !spirv.ptr<!spirv.struct<(!spirv.array<128 x f32, stride=4> [0])>, Input>
510 spirv.GlobalVariable @var0 bind (0 , 1 ) : !spirv.ptr <!spirv.struct <(!spirv.array <128 x f32 , stride =4 > [0 ])>, Input >
611
@@ -16,8 +21,8 @@ spirv.module Logical GLSL450 requires #spirv.vce<v1.0, [Shader], []> {
1621 // CHECK: !spirv.ptr<!spirv.struct<(f32 [0, NonWritable], i32 [4]), Block>, StorageBuffer>
1722 spirv.GlobalVariable @var4 : !spirv.ptr <!spirv.struct <(f32 [0 , NonWritable ], i32 [4 ]), Block >, StorageBuffer >
1823
19- // CHECK: !spirv.ptr<!spirv.struct<(f32 [NonWritable], i32 [NonWritable, NonReadable]), Block>, StorageBuffer>
20- spirv.GlobalVariable @var5 : !spirv.ptr <!spirv.struct <(f32 [NonWritable ], i32 [NonWritable , NonReadable ]), Block >, StorageBuffer >
24+ // CHECK: !spirv.ptr<!spirv.struct<(f32 [0, NonWritable], i32 [4, NonWritable, NonReadable]), Block>, StorageBuffer>
25+ spirv.GlobalVariable @var5 : !spirv.ptr <!spirv.struct <(f32 [0 , NonWritable ], i32 [4 , NonWritable , NonReadable ]), Block >, StorageBuffer >
2126
2227 // CHECK: !spirv.ptr<!spirv.struct<(f32 [0, NonWritable], i32 [4, NonWritable, NonReadable]), Block>, StorageBuffer>
2328 spirv.GlobalVariable @var6 : !spirv.ptr <!spirv.struct <(f32 [0 , NonWritable ], i32 [4 , NonWritable , NonReadable ]), Block >, StorageBuffer >
@@ -34,14 +39,14 @@ spirv.module Logical GLSL450 requires #spirv.vce<v1.0, [Shader], []> {
3439 // CHECK: !spirv.ptr<!spirv.struct<test_id, (!spirv.array<128 x f32, stride=4> [0])>, Input>
3540 spirv.GlobalVariable @id_var0 : !spirv.ptr <!spirv.struct <test_id , (!spirv.array <128 x f32 , stride =4 > [0 ])>, Input >
3641
37- // CHECK: !spirv.ptr<!spirv.struct<rec, (!spirv.ptr<!spirv.struct<rec>, StorageBuffer>), Block>, StorageBuffer>
38- spirv.GlobalVariable @recursive_simple : !spirv.ptr <!spirv.struct <rec , (!spirv.ptr <!spirv.struct <rec >, StorageBuffer >), Block >, StorageBuffer >
42+ // CHECK: !spirv.ptr<!spirv.struct<rec, (!spirv.ptr<!spirv.struct<rec>, StorageBuffer> [0] ), Block>, StorageBuffer>
43+ spirv.GlobalVariable @recursive_simple : !spirv.ptr <!spirv.struct <rec , (!spirv.ptr <!spirv.struct <rec >, StorageBuffer > [ 0 ] ), Block >, StorageBuffer >
3944
40- // CHECK: !spirv.ptr<!spirv.struct<a, (!spirv.ptr<!spirv.struct<b, (!spirv.ptr<!spirv.struct<a>, Uniform>), Block>, Uniform>), Block>, Uniform>
41- spirv.GlobalVariable @recursive_2 : !spirv.ptr <!spirv.struct <a , (!spirv.ptr <!spirv.struct <b , (!spirv.ptr <!spirv.struct <a >, Uniform >), Block >, Uniform >), Block >, Uniform >
45+ // CHECK: !spirv.ptr<!spirv.struct<a, (!spirv.ptr<!spirv.struct<b, (!spirv.ptr<!spirv.struct<a>, Uniform> [0] ), Block>, Uniform> [0] ), Block>, Uniform>
46+ spirv.GlobalVariable @recursive_2 : !spirv.ptr <!spirv.struct <a , (!spirv.ptr <!spirv.struct <b , (!spirv.ptr <!spirv.struct <a >, Uniform > [ 0 ] ), Block >, Uniform > [ 0 ] ), Block >, Uniform >
4247
43- // CHECK: !spirv.ptr<!spirv.struct<axx, (!spirv.ptr<!spirv.struct<bxx, (!spirv.ptr<!spirv.struct<axx>, Uniform>, !spirv.ptr<!spirv.struct<bxx>, Uniform>), Block>, Uniform>), Block>, Uniform>
44- spirv.GlobalVariable @recursive_3 : !spirv.ptr <!spirv.struct <axx , (!spirv.ptr <!spirv.struct <bxx , (!spirv.ptr <!spirv.struct <axx >, Uniform >, !spirv.ptr <!spirv.struct <bxx >, Uniform >), Block >, Uniform >), Block >, Uniform >
48+ // CHECK: !spirv.ptr<!spirv.struct<axx, (!spirv.ptr<!spirv.struct<bxx, (!spirv.ptr<!spirv.struct<axx>, Uniform> [0] , !spirv.ptr<!spirv.struct<bxx>, Uniform> [8] ), Block>, Uniform> [0] ), Block>, Uniform>
49+ spirv.GlobalVariable @recursive_3 : !spirv.ptr <!spirv.struct <axx , (!spirv.ptr <!spirv.struct <bxx , (!spirv.ptr <!spirv.struct <axx >, Uniform > [ 0 ] , !spirv.ptr <!spirv.struct <bxx >, Uniform > [ 8 ] ), Block >, Uniform > [ 0 ] ), Block >, Uniform >
4550
4651 // CHECK: spirv.GlobalVariable @block : !spirv.ptr<!spirv.struct<vert, (vector<4xf32> [BuiltIn=0], f32 [BuiltIn=1]), Block>, Output>
4752 spirv.GlobalVariable @block : !spirv.ptr <!spirv.struct <vert , (vector <4 xf32 > [BuiltIn =0 ], f32 [BuiltIn =1 ]), Block >, Output >
0 commit comments