diff --git a/src/writer/glsl/generator_impl.cc b/src/writer/glsl/generator_impl.cc
index 8857f8a..f0e51a1 100644
--- a/src/writer/glsl/generator_impl.cc
+++ b/src/writer/glsl/generator_impl.cc
@@ -1752,7 +1752,7 @@
     return false;
   }
   ast::VariableBindingPoint bp = decl->BindingPoint();
-  line() << "layout(binding = " << bp.binding->value << ") buffer "
+  line() << "layout(binding = " << bp.binding->value << ", std430) buffer "
          << UniqueIdentifier(StructName(str)) << " {";
   EmitStructMembers(current_buffer_, str);
   auto name = builder_.Symbols().NameFor(decl->symbol);
diff --git a/src/writer/glsl/generator_impl_function_test.cc b/src/writer/glsl/generator_impl_function_test.cc
index e186258..ffcb607 100644
--- a/src/writer/glsl/generator_impl_function_test.cc
+++ b/src/writer/glsl/generator_impl_function_test.cc
@@ -468,7 +468,7 @@
   float b;
 };
 
-layout(binding = 0) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_1 {
   int a;
   float b;
 } coord;
@@ -523,7 +523,7 @@
   float b;
 };
 
-layout(binding = 0) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_1 {
   int a;
   float b;
 } coord;
@@ -574,7 +574,7 @@
   float b;
 };
 
-layout(binding = 0) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_1 {
   int a;
   float b;
 } coord;
@@ -626,7 +626,7 @@
   float b;
 };
 
-layout(binding = 0) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_1 {
   int a;
   float b;
 } coord;
@@ -733,7 +733,7 @@
   float x;
 };
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   float x;
 } coord;
 float sub_func(float param) {
@@ -980,7 +980,7 @@
   float d;
 };
 
-layout(binding = 0) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_1 {
   float d;
 } data;
 void a() {
diff --git a/src/writer/glsl/generator_impl_member_accessor_test.cc b/src/writer/glsl/generator_impl_member_accessor_test.cc
index e93fb21..362e524 100644
--- a/src/writer/glsl/generator_impl_member_accessor_test.cc
+++ b/src/writer/glsl/generator_impl_member_accessor_test.cc
@@ -299,7 +299,7 @@
   mat2x3 b;
 };
 
-layout(binding = 0) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_1 {
   int a;
   mat2x3 b;
 } data;
@@ -347,7 +347,7 @@
   mat4x3 a;
 };
 
-layout(binding = 0) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_1 {
   float z;
   mat4x3 a;
 } data;
@@ -393,7 +393,7 @@
   int a[5];
 };
 
-layout(binding = 0) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_1 {
   float z;
   int a[5];
 } data;
@@ -440,7 +440,7 @@
   int a[5];
 };
 
-layout(binding = 0) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_1 {
   float z;
   int a[5];
 } data;
@@ -484,7 +484,7 @@
   int a[5];
 };
 
-layout(binding = 0) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_1 {
   float z;
   int a[5];
 } data;
@@ -543,7 +543,7 @@
   Inner c[4];
 };
 
-layout(binding = 0) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_1 {
   Inner c[4];
 } data;
 void tint_symbol() {
@@ -604,7 +604,7 @@
   Inner c[4];
 };
 
-layout(binding = 0) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_1 {
   Inner c[4];
 } data;
 void tint_symbol() {
@@ -665,7 +665,7 @@
   Inner c[4];
 };
 
-layout(binding = 0) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_1 {
   Inner c[4];
 } data;
 void tint_symbol() {
@@ -726,7 +726,7 @@
   Inner c[4];
 };
 
-layout(binding = 0) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_1 {
   Inner c[4];
 } data;
 void tint_symbol() {
@@ -783,7 +783,7 @@
   Inner c[4];
 };
 
-layout(binding = 0) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_1 {
   Inner c[4];
 } data;
 void tint_symbol() {
@@ -844,7 +844,7 @@
   Inner c[4];
 };
 
-layout(binding = 0) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_1 {
   Inner c[4];
 } data;
 void tint_symbol() {
diff --git a/src/writer/glsl/generator_impl_sanitizer_test.cc b/src/writer/glsl/generator_impl_sanitizer_test.cc
index e5c7816..2b663d1 100644
--- a/src/writer/glsl/generator_impl_sanitizer_test.cc
+++ b/src/writer/glsl/generator_impl_sanitizer_test.cc
@@ -51,7 +51,7 @@
   auto* expect = R"(#version 310 es
 precision mediump float;
 
-layout(binding = 1) buffer my_struct_1 {
+layout(binding = 1, std430) buffer my_struct_1 {
   float a[];
 } b;
 void a_func() {
@@ -99,7 +99,7 @@
   auto* expect = R"(#version 310 es
 precision mediump float;
 
-layout(binding = 1) buffer my_struct_1 {
+layout(binding = 1, std430) buffer my_struct_1 {
   float z;
   float a[];
 } b;
@@ -150,7 +150,7 @@
   auto* expect = R"(#version 310 es
 precision mediump float;
 
-layout(binding = 1) buffer my_struct_1 {
+layout(binding = 1, std430) buffer my_struct_1 {
   float a[];
 } b;
 void a_func() {
diff --git a/test/array/assign_to_function_var.wgsl.expected.glsl b/test/array/assign_to_function_var.wgsl.expected.glsl
index d127dca..3e5f1f2 100644
--- a/test/array/assign_to_function_var.wgsl.expected.glsl
+++ b/test/array/assign_to_function_var.wgsl.expected.glsl
@@ -15,7 +15,7 @@
   ivec4 arr[4];
 } src_uniform;
 
-layout(binding = 1) buffer S_2 {
+layout(binding = 1, std430) buffer S_2 {
   ivec4 arr[4];
 } src_storage;
 ivec4[4] ret_arr() {
diff --git a/test/array/assign_to_private_var.wgsl.expected.glsl b/test/array/assign_to_private_var.wgsl.expected.glsl
index 992a8c6..069c825 100644
--- a/test/array/assign_to_private_var.wgsl.expected.glsl
+++ b/test/array/assign_to_private_var.wgsl.expected.glsl
@@ -15,7 +15,7 @@
   ivec4 arr[4];
 } src_uniform;
 
-layout(binding = 1) buffer S_2 {
+layout(binding = 1, std430) buffer S_2 {
   ivec4 arr[4];
 } src_storage;
 ivec4 dst[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
diff --git a/test/array/assign_to_storage_var.wgsl.expected.glsl b/test/array/assign_to_storage_var.wgsl.expected.glsl
index 7df07b7..9452e86 100644
--- a/test/array/assign_to_storage_var.wgsl.expected.glsl
+++ b/test/array/assign_to_storage_var.wgsl.expected.glsl
@@ -19,13 +19,13 @@
   ivec4 arr[4];
 } src_uniform;
 
-layout(binding = 1) buffer S_2 {
+layout(binding = 1, std430) buffer S_2 {
   ivec4 arr[4];
 } src_storage;
-layout(binding = 2) buffer S_3 {
+layout(binding = 2, std430) buffer S_3 {
   ivec4 arr[4];
 } dst;
-layout(binding = 3) buffer S_nested_1 {
+layout(binding = 3, std430) buffer S_nested_1 {
   int arr[4][3][2];
 } dst_nested;
 ivec4[4] ret_arr() {
diff --git a/test/array/assign_to_workgroup_var.wgsl.expected.glsl b/test/array/assign_to_workgroup_var.wgsl.expected.glsl
index 14caa05..50e26c9 100644
--- a/test/array/assign_to_workgroup_var.wgsl.expected.glsl
+++ b/test/array/assign_to_workgroup_var.wgsl.expected.glsl
@@ -15,7 +15,7 @@
   ivec4 arr[4];
 } src_uniform;
 
-layout(binding = 1) buffer S_2 {
+layout(binding = 1, std430) buffer S_2 {
   ivec4 arr[4];
 } src_storage;
 shared ivec4 dst[4];
diff --git a/test/array/strides.spvasm.expected.glsl b/test/array/strides.spvasm.expected.glsl
index 21fc3e8..6e46ce7 100644
--- a/test/array/strides.spvasm.expected.glsl
+++ b/test/array/strides.spvasm.expected.glsl
@@ -13,7 +13,7 @@
   strided_arr_1 a[4];
 };
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   strided_arr_1 a[4];
 } s;
 void f_1() {
diff --git a/test/benchmark/particles.wgsl.expected.glsl b/test/benchmark/particles.wgsl.expected.glsl
index 89d1e67..51b5e98 100644
--- a/test/benchmark/particles.wgsl.expected.glsl
+++ b/test/benchmark/particles.wgsl.expected.glsl
@@ -165,7 +165,7 @@
   vec4 seed;
 } sim_params;
 
-layout(binding = 1) buffer Particles_1 {
+layout(binding = 1, std430) buffer Particles_1 {
   Particle particles[];
 } data;
 struct UBO {
@@ -257,10 +257,10 @@
   uint width;
 } ubo;
 
-layout(binding = 4) buffer Buffer_1 {
+layout(binding = 4, std430) buffer Buffer_1 {
   float weights[];
 } buf_in;
-layout(binding = 5) buffer Buffer_2 {
+layout(binding = 5, std430) buffer Buffer_2 {
   float weights[];
 } buf_out;
 uniform highp sampler2D tex_in_1;
@@ -315,10 +315,10 @@
   uint width;
 } ubo;
 
-layout(binding = 4) buffer Buffer_1 {
+layout(binding = 4, std430) buffer Buffer_1 {
   float weights[];
 } buf_in;
-layout(binding = 5) buffer Buffer_2 {
+layout(binding = 5, std430) buffer Buffer_2 {
   float weights[];
 } buf_out;
 layout(rgba8) uniform highp writeonly image2D tex_out;
diff --git a/test/benchmark/skinned-shadowed-pbr-fragment.wgsl.expected.glsl b/test/benchmark/skinned-shadowed-pbr-fragment.wgsl.expected.glsl
index 49d6d5c..af6c708 100644
--- a/test/benchmark/skinned-shadowed-pbr-fragment.wgsl.expected.glsl
+++ b/test/benchmark/skinned-shadowed-pbr-fragment.wgsl.expected.glsl
@@ -57,7 +57,7 @@
   uint indices[1769472];
 };
 
-layout(binding = 1) buffer ClusterLightGroup_1 {
+layout(binding = 1, std430) buffer ClusterLightGroup_1 {
   uint offset;
   ClusterLights lights[27648];
   uint indices[1769472];
@@ -69,7 +69,7 @@
   float intensity;
 };
 
-layout(binding = 2) buffer GlobalLights_1 {
+layout(binding = 2, std430) buffer GlobalLights_1 {
   vec3 ambient;
   vec3 dirColor;
   float dirIntensity;
@@ -94,7 +94,7 @@
   return ((tile.x + (tile.y * tileCount.x)) + ((tile.z * tileCount.x) * tileCount.y));
 }
 
-layout(binding = 6) buffer LightShadowTable_1 {
+layout(binding = 6, std430) buffer LightShadowTable_1 {
   int light[];
 } lightShadowTable;
 vec2 shadowSampleOffsets[16] = vec2[16](vec2(-1.5f, -1.5f), vec2(-1.5f, -0.5f), vec2(-1.5f, 0.5f), vec2(-1.5f, 1.5f), vec2(-0.5f, -1.5f), vec2(-0.5f, -0.5f), vec2(-0.5f, 0.5f), vec2(-0.5f, 1.5f), vec2(0.5f, -1.5f), vec2(0.5f, -0.5f), vec2(0.5f, 0.5f), vec2(0.5f, 1.5f), vec2(1.5f, -1.5f), vec2(1.5f, -0.5f), vec2(1.5f, 0.5f), vec2(1.5f, 1.5f));
@@ -104,7 +104,7 @@
   mat4 viewProj;
 };
 
-layout(binding = 7) buffer LightShadows_1 {
+layout(binding = 7, std430) buffer LightShadows_1 {
   ShadowProperties properties[];
 } shadow;
 uniform highp sampler2D shadowTexture_1;
diff --git a/test/buffer/storage/dynamic_index/read.wgsl.expected.glsl b/test/buffer/storage/dynamic_index/read.wgsl.expected.glsl
index 11436a6..699ed59 100644
--- a/test/buffer/storage/dynamic_index/read.wgsl.expected.glsl
+++ b/test/buffer/storage/dynamic_index/read.wgsl.expected.glsl
@@ -13,7 +13,7 @@
   ivec4 i[4];
 };
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   Inner arr[];
 } s;
 void tint_symbol(uint idx) {
diff --git a/test/buffer/storage/dynamic_index/write.wgsl.expected.glsl b/test/buffer/storage/dynamic_index/write.wgsl.expected.glsl
index 3e6a202..a8792c9 100644
--- a/test/buffer/storage/dynamic_index/write.wgsl.expected.glsl
+++ b/test/buffer/storage/dynamic_index/write.wgsl.expected.glsl
@@ -13,7 +13,7 @@
   ivec4 i[4];
 };
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   Inner arr[];
 } s;
 void tint_symbol(uint idx) {
diff --git a/test/buffer/storage/static_index/read.wgsl.expected.glsl b/test/buffer/storage/static_index/read.wgsl.expected.glsl
index 3e989aa..c286530 100644
--- a/test/buffer/storage/static_index/read.wgsl.expected.glsl
+++ b/test/buffer/storage/static_index/read.wgsl.expected.glsl
@@ -18,7 +18,7 @@
   Inner j[4];
 };
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   ivec3 a;
   int b;
   uvec3 c;
diff --git a/test/buffer/storage/static_index/write.wgsl.expected.glsl b/test/buffer/storage/static_index/write.wgsl.expected.glsl
index 292daf0..91947bf 100644
--- a/test/buffer/storage/static_index/write.wgsl.expected.glsl
+++ b/test/buffer/storage/static_index/write.wgsl.expected.glsl
@@ -18,7 +18,7 @@
   Inner j[4];
 };
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   ivec3 a;
   int b;
   uvec3 c;
diff --git a/test/buffer/storage/types/array.wgsl.expected.glsl b/test/buffer/storage/types/array.wgsl.expected.glsl
index f93c0a4..f9af038 100644
--- a/test/buffer/storage/types/array.wgsl.expected.glsl
+++ b/test/buffer/storage/types/array.wgsl.expected.glsl
@@ -5,10 +5,10 @@
   float inner[4];
 };
 
-layout(binding = 0) buffer tint_symbol_block_1 {
+layout(binding = 0, std430) buffer tint_symbol_block_1 {
   float inner[4];
 } tint_symbol;
-layout(binding = 1) buffer tint_symbol_block_2 {
+layout(binding = 1, std430) buffer tint_symbol_block_2 {
   float inner[4];
 } tint_symbol_1;
 void tint_symbol_2() {
diff --git a/test/buffer/storage/types/f32.wgsl.expected.glsl b/test/buffer/storage/types/f32.wgsl.expected.glsl
index ff15000..1d15ab8 100644
--- a/test/buffer/storage/types/f32.wgsl.expected.glsl
+++ b/test/buffer/storage/types/f32.wgsl.expected.glsl
@@ -5,10 +5,10 @@
   float inner;
 };
 
-layout(binding = 0) buffer tint_symbol_block_1 {
+layout(binding = 0, std430) buffer tint_symbol_block_1 {
   float inner;
 } tint_symbol;
-layout(binding = 1) buffer tint_symbol_block_2 {
+layout(binding = 1, std430) buffer tint_symbol_block_2 {
   float inner;
 } tint_symbol_1;
 void tint_symbol_2() {
diff --git a/test/buffer/storage/types/i32.wgsl.expected.glsl b/test/buffer/storage/types/i32.wgsl.expected.glsl
index 2957e23..07206d4 100644
--- a/test/buffer/storage/types/i32.wgsl.expected.glsl
+++ b/test/buffer/storage/types/i32.wgsl.expected.glsl
@@ -5,10 +5,10 @@
   int inner;
 };
 
-layout(binding = 0) buffer tint_symbol_block_1 {
+layout(binding = 0, std430) buffer tint_symbol_block_1 {
   int inner;
 } tint_symbol;
-layout(binding = 1) buffer tint_symbol_block_2 {
+layout(binding = 1, std430) buffer tint_symbol_block_2 {
   int inner;
 } tint_symbol_1;
 void tint_symbol_2() {
diff --git a/test/buffer/storage/types/mat2x2.wgsl.expected.glsl b/test/buffer/storage/types/mat2x2.wgsl.expected.glsl
index 39cb9fc..00d1c38 100644
--- a/test/buffer/storage/types/mat2x2.wgsl.expected.glsl
+++ b/test/buffer/storage/types/mat2x2.wgsl.expected.glsl
@@ -5,10 +5,10 @@
   mat2 inner;
 };
 
-layout(binding = 0) buffer tint_symbol_block_1 {
+layout(binding = 0, std430) buffer tint_symbol_block_1 {
   mat2 inner;
 } tint_symbol;
-layout(binding = 1) buffer tint_symbol_block_2 {
+layout(binding = 1, std430) buffer tint_symbol_block_2 {
   mat2 inner;
 } tint_symbol_1;
 void tint_symbol_2() {
diff --git a/test/buffer/storage/types/mat2x3.wgsl.expected.glsl b/test/buffer/storage/types/mat2x3.wgsl.expected.glsl
index 817129e..3b71731 100644
--- a/test/buffer/storage/types/mat2x3.wgsl.expected.glsl
+++ b/test/buffer/storage/types/mat2x3.wgsl.expected.glsl
@@ -5,10 +5,10 @@
   mat2x3 inner;
 };
 
-layout(binding = 0) buffer tint_symbol_block_1 {
+layout(binding = 0, std430) buffer tint_symbol_block_1 {
   mat2x3 inner;
 } tint_symbol;
-layout(binding = 1) buffer tint_symbol_block_2 {
+layout(binding = 1, std430) buffer tint_symbol_block_2 {
   mat2x3 inner;
 } tint_symbol_1;
 void tint_symbol_2() {
diff --git a/test/buffer/storage/types/mat3x2.wgsl.expected.glsl b/test/buffer/storage/types/mat3x2.wgsl.expected.glsl
index 9d6db45..591b0c7 100644
--- a/test/buffer/storage/types/mat3x2.wgsl.expected.glsl
+++ b/test/buffer/storage/types/mat3x2.wgsl.expected.glsl
@@ -5,10 +5,10 @@
   mat3x2 inner;
 };
 
-layout(binding = 0) buffer tint_symbol_block_1 {
+layout(binding = 0, std430) buffer tint_symbol_block_1 {
   mat3x2 inner;
 } tint_symbol;
-layout(binding = 1) buffer tint_symbol_block_2 {
+layout(binding = 1, std430) buffer tint_symbol_block_2 {
   mat3x2 inner;
 } tint_symbol_1;
 void tint_symbol_2() {
diff --git a/test/buffer/storage/types/mat4x4.wgsl.expected.glsl b/test/buffer/storage/types/mat4x4.wgsl.expected.glsl
index 4f401b0..57e5f2d 100644
--- a/test/buffer/storage/types/mat4x4.wgsl.expected.glsl
+++ b/test/buffer/storage/types/mat4x4.wgsl.expected.glsl
@@ -5,10 +5,10 @@
   mat4 inner;
 };
 
-layout(binding = 0) buffer tint_symbol_block_1 {
+layout(binding = 0, std430) buffer tint_symbol_block_1 {
   mat4 inner;
 } tint_symbol;
-layout(binding = 1) buffer tint_symbol_block_2 {
+layout(binding = 1, std430) buffer tint_symbol_block_2 {
   mat4 inner;
 } tint_symbol_1;
 void tint_symbol_2() {
diff --git a/test/buffer/storage/types/runtime_array.wgsl.expected.glsl b/test/buffer/storage/types/runtime_array.wgsl.expected.glsl
index 0498997..8e396df 100644
--- a/test/buffer/storage/types/runtime_array.wgsl.expected.glsl
+++ b/test/buffer/storage/types/runtime_array.wgsl.expected.glsl
@@ -5,10 +5,10 @@
   float f;
 };
 
-layout(binding = 0) buffer tint_symbol_block_1 {
+layout(binding = 0, std430) buffer tint_symbol_block_1 {
   S inner[];
 } tint_symbol;
-layout(binding = 1) buffer tint_symbol_block_2 {
+layout(binding = 1, std430) buffer tint_symbol_block_2 {
   S inner[];
 } tint_symbol_1;
 void tint_symbol_2() {
diff --git a/test/buffer/storage/types/struct.wgsl.expected.glsl b/test/buffer/storage/types/struct.wgsl.expected.glsl
index 6c17bca..a08d79b 100644
--- a/test/buffer/storage/types/struct.wgsl.expected.glsl
+++ b/test/buffer/storage/types/struct.wgsl.expected.glsl
@@ -11,10 +11,10 @@
   Inner inner;
 };
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   Inner inner;
 } tint_symbol;
-layout(binding = 1) buffer S_2 {
+layout(binding = 1, std430) buffer S_2 {
   Inner inner;
 } tint_symbol_1;
 void tint_symbol_2() {
@@ -27,7 +27,7 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:19: 'assign' :  cannot convert from 'layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer structure{ global mediump float f} inner}' to 'layout( binding=1 column_major shared) buffer block{layout( column_major shared) buffer structure{ global mediump float f} inner}'
+ERROR: 0:19: 'assign' :  cannot convert from 'layout( binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer structure{ global mediump float f} inner}' to 'layout( binding=1 column_major std430) buffer block{layout( column_major std430 offset=0) buffer structure{ global mediump float f} inner}'
 ERROR: 0:19: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
diff --git a/test/buffer/storage/types/u32.wgsl.expected.glsl b/test/buffer/storage/types/u32.wgsl.expected.glsl
index c029902..4586d69 100644
--- a/test/buffer/storage/types/u32.wgsl.expected.glsl
+++ b/test/buffer/storage/types/u32.wgsl.expected.glsl
@@ -5,10 +5,10 @@
   uint inner;
 };
 
-layout(binding = 0) buffer tint_symbol_block_1 {
+layout(binding = 0, std430) buffer tint_symbol_block_1 {
   uint inner;
 } tint_symbol;
-layout(binding = 1) buffer tint_symbol_block_2 {
+layout(binding = 1, std430) buffer tint_symbol_block_2 {
   uint inner;
 } tint_symbol_1;
 void tint_symbol_2() {
diff --git a/test/buffer/storage/types/vec2.wgsl.expected.glsl b/test/buffer/storage/types/vec2.wgsl.expected.glsl
index 430c76f..b9b05a8 100644
--- a/test/buffer/storage/types/vec2.wgsl.expected.glsl
+++ b/test/buffer/storage/types/vec2.wgsl.expected.glsl
@@ -5,10 +5,10 @@
   ivec2 inner;
 };
 
-layout(binding = 0) buffer tint_symbol_block_1 {
+layout(binding = 0, std430) buffer tint_symbol_block_1 {
   ivec2 inner;
 } tint_symbol;
-layout(binding = 1) buffer tint_symbol_block_2 {
+layout(binding = 1, std430) buffer tint_symbol_block_2 {
   ivec2 inner;
 } tint_symbol_1;
 void tint_symbol_2() {
diff --git a/test/buffer/storage/types/vec3.wgsl.expected.glsl b/test/buffer/storage/types/vec3.wgsl.expected.glsl
index 78851c6..0a7d552 100644
--- a/test/buffer/storage/types/vec3.wgsl.expected.glsl
+++ b/test/buffer/storage/types/vec3.wgsl.expected.glsl
@@ -5,10 +5,10 @@
   uvec3 inner;
 };
 
-layout(binding = 0) buffer tint_symbol_block_1 {
+layout(binding = 0, std430) buffer tint_symbol_block_1 {
   uvec3 inner;
 } tint_symbol;
-layout(binding = 1) buffer tint_symbol_block_2 {
+layout(binding = 1, std430) buffer tint_symbol_block_2 {
   uvec3 inner;
 } tint_symbol_1;
 void tint_symbol_2() {
diff --git a/test/buffer/storage/types/vec4.wgsl.expected.glsl b/test/buffer/storage/types/vec4.wgsl.expected.glsl
index 8dc4c6e..c6e6168 100644
--- a/test/buffer/storage/types/vec4.wgsl.expected.glsl
+++ b/test/buffer/storage/types/vec4.wgsl.expected.glsl
@@ -5,10 +5,10 @@
   vec4 inner;
 };
 
-layout(binding = 0) buffer tint_symbol_block_1 {
+layout(binding = 0, std430) buffer tint_symbol_block_1 {
   vec4 inner;
 } tint_symbol;
-layout(binding = 1) buffer tint_symbol_block_2 {
+layout(binding = 1, std430) buffer tint_symbol_block_2 {
   vec4 inner;
 } tint_symbol_1;
 void tint_symbol_2() {
diff --git a/test/bug/chromium/1273230.wgsl.expected.glsl b/test/bug/chromium/1273230.wgsl.expected.glsl
index bfc20ad..2f8ed43 100644
--- a/test/bug/chromium/1273230.wgsl.expected.glsl
+++ b/test/bug/chromium/1273230.wgsl.expected.glsl
@@ -54,19 +54,19 @@
   vec3 bbMax;
 } uniforms;
 
-layout(binding = 10) buffer U32s_1 {
+layout(binding = 10, std430) buffer U32s_1 {
   uint values[];
 } indices;
-layout(binding = 11) buffer F32s_1 {
+layout(binding = 11, std430) buffer F32s_1 {
   float values[];
 } positions;
-layout(binding = 20) buffer AU32s_1 {
+layout(binding = 20, std430) buffer AU32s_1 {
   uint values[];
 } counters;
-layout(binding = 21) buffer AI32s_1 {
+layout(binding = 21, std430) buffer AI32s_1 {
   int values[];
 } LUT;
-layout(binding = 50) buffer Dbg_1 {
+layout(binding = 50, std430) buffer Dbg_1 {
   uint offsetCounter;
   uint pad0;
   uint pad1;
diff --git a/test/bug/chromium/1290107.wgsl.expected.glsl b/test/bug/chromium/1290107.wgsl.expected.glsl
index a2b89e4..a68fe94 100644
--- a/test/bug/chromium/1290107.wgsl.expected.glsl
+++ b/test/bug/chromium/1290107.wgsl.expected.glsl
@@ -7,7 +7,7 @@
   float f;
 };
 
-layout(binding = 0) buffer arr_block_1 {
+layout(binding = 0, std430) buffer arr_block_1 {
   S inner[];
 } arr;
 void tint_symbol() {
diff --git a/test/bug/fxc/dyn_array_idx/read/function.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/read/function.wgsl.expected.glsl
index d40bfd5..f285c50 100644
--- a/test/bug/fxc/dyn_array_idx/read/function.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/read/function.wgsl.expected.glsl
@@ -17,7 +17,7 @@
   int tint_symbol;
 };
 
-layout(binding = 1) buffer Result_1 {
+layout(binding = 1, std430) buffer Result_1 {
   int tint_symbol;
 } result;
 void f() {
diff --git a/test/bug/fxc/dyn_array_idx/read/private.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/read/private.wgsl.expected.glsl
index e2fef20..0ff8f67 100644
--- a/test/bug/fxc/dyn_array_idx/read/private.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/read/private.wgsl.expected.glsl
@@ -17,7 +17,7 @@
   int tint_symbol;
 };
 
-layout(binding = 1) buffer Result_1 {
+layout(binding = 1, std430) buffer Result_1 {
   int tint_symbol;
 } result;
 S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
diff --git a/test/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.glsl
index 457175e..13a067e 100644
--- a/test/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.glsl
@@ -13,14 +13,14 @@
   int tint_symbol;
 };
 
-layout(binding = 2) buffer Result_1 {
+layout(binding = 2, std430) buffer Result_1 {
   int tint_symbol;
 } result;
 struct SSBO {
   int data[4];
 };
 
-layout(binding = 1) buffer SSBO_1 {
+layout(binding = 1, std430) buffer SSBO_1 {
   int data[4];
 } ssbo;
 void f() {
diff --git a/test/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.glsl
index 0b495f2..2ef95c3 100644
--- a/test/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.glsl
@@ -15,7 +15,7 @@
   int tint_symbol;
 };
 
-layout(binding = 2) buffer Result_1 {
+layout(binding = 2, std430) buffer Result_1 {
   int tint_symbol;
 } result;
 void f() {
diff --git a/test/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.glsl
index 7e4929f..30963db 100644
--- a/test/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.glsl
@@ -17,7 +17,7 @@
   int tint_symbol;
 };
 
-layout(binding = 1) buffer Result_1 {
+layout(binding = 1, std430) buffer Result_1 {
   int tint_symbol;
 } result;
 shared S s;
diff --git a/test/bug/fxc/dyn_array_idx/write/function.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/write/function.wgsl.expected.glsl
index 100f67b..4d79f32 100644
--- a/test/bug/fxc/dyn_array_idx/write/function.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/write/function.wgsl.expected.glsl
@@ -17,7 +17,7 @@
   int tint_symbol;
 };
 
-layout(binding = 1) buffer Result_1 {
+layout(binding = 1, std430) buffer Result_1 {
   int tint_symbol;
 } result;
 void f() {
diff --git a/test/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.glsl
index 997dd2e..90509ae 100644
--- a/test/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.glsl
@@ -17,7 +17,7 @@
   int tint_symbol;
 };
 
-layout(binding = 1) buffer Result_1 {
+layout(binding = 1, std430) buffer Result_1 {
   int tint_symbol;
 } result;
 void x(inout S p) {
diff --git a/test/bug/fxc/dyn_array_idx/write/private.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/write/private.wgsl.expected.glsl
index 0a776e7..30ce5d2 100644
--- a/test/bug/fxc/dyn_array_idx/write/private.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/write/private.wgsl.expected.glsl
@@ -17,7 +17,7 @@
   int tint_symbol;
 };
 
-layout(binding = 1) buffer Result_1 {
+layout(binding = 1, std430) buffer Result_1 {
   int tint_symbol;
 } result;
 S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
diff --git a/test/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.glsl
index a4c0ad3..ed3c5dc 100644
--- a/test/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.glsl
@@ -17,7 +17,7 @@
   int tint_symbol;
 };
 
-layout(binding = 1) buffer Result_1 {
+layout(binding = 1, std430) buffer Result_1 {
   int tint_symbol;
 } result;
 S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
diff --git a/test/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.glsl
index aa44922..dffa923 100644
--- a/test/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.glsl
@@ -13,14 +13,14 @@
   int tint_symbol;
 };
 
-layout(binding = 2) buffer Result_1 {
+layout(binding = 2, std430) buffer Result_1 {
   int tint_symbol;
 } result;
 struct SSBO {
   int data[4];
 };
 
-layout(binding = 1) buffer SSBO_1 {
+layout(binding = 1, std430) buffer SSBO_1 {
   int data[4];
 } ssbo;
 void f() {
diff --git a/test/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.glsl
index 49e6366..dc7ae93 100644
--- a/test/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.glsl
@@ -17,7 +17,7 @@
   int tint_symbol;
 };
 
-layout(binding = 1) buffer Result_1 {
+layout(binding = 1, std430) buffer Result_1 {
   int tint_symbol;
 } result;
 shared S s;
diff --git a/test/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.glsl b/test/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.glsl
index c2c8f93..cd5b829 100644
--- a/test/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.glsl
+++ b/test/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.glsl
@@ -12,7 +12,7 @@
   vec3 velocity;
 };
 
-layout(binding = 3) buffer Particles_1 {
+layout(binding = 3, std430) buffer Particles_1 {
   Particle p[];
 } particles;
 layout(binding = 4) uniform Simulation_1 {
diff --git a/test/bug/tint/1046.wgsl.expected.glsl b/test/bug/tint/1046.wgsl.expected.glsl
index 68ab312..25caf19 100644
--- a/test/bug/tint/1046.wgsl.expected.glsl
+++ b/test/bug/tint/1046.wgsl.expected.glsl
@@ -26,7 +26,7 @@
   vec4 color;
 } uniforms;
 
-layout(binding = 1) buffer PointLights_1 {
+layout(binding = 1, std430) buffer PointLights_1 {
   PointLight values[];
 } pointLights;
 struct FragmentInput {
diff --git a/test/bug/tint/1113.wgsl.expected.glsl b/test/bug/tint/1113.wgsl.expected.glsl
index 89c5c46..1c55add 100644
--- a/test/bug/tint/1113.wgsl.expected.glsl
+++ b/test/bug/tint/1113.wgsl.expected.glsl
@@ -34,19 +34,19 @@
   vec3 bbMax;
 } uniforms;
 
-layout(binding = 10) buffer U32s_1 {
+layout(binding = 10, std430) buffer U32s_1 {
   uint values[];
 } indices;
-layout(binding = 11) buffer F32s_1 {
+layout(binding = 11, std430) buffer F32s_1 {
   float values[];
 } positions;
-layout(binding = 20) buffer AU32s_1 {
+layout(binding = 20, std430) buffer AU32s_1 {
   uint values[];
 } counters;
-layout(binding = 21) buffer AI32s_1 {
+layout(binding = 21, std430) buffer AI32s_1 {
   int values[];
 } LUT;
-layout(binding = 50) buffer Dbg_1 {
+layout(binding = 50, std430) buffer Dbg_1 {
   uint offsetCounter;
   uint pad0;
   uint pad1;
@@ -156,19 +156,19 @@
   vec3 bbMax;
 } uniforms;
 
-layout(binding = 10) buffer U32s_1 {
+layout(binding = 10, std430) buffer U32s_1 {
   uint values[];
 } indices;
-layout(binding = 11) buffer F32s_1 {
+layout(binding = 11, std430) buffer F32s_1 {
   float values[];
 } positions;
-layout(binding = 20) buffer AU32s_1 {
+layout(binding = 20, std430) buffer AU32s_1 {
   uint values[];
 } counters;
-layout(binding = 21) buffer AI32s_1 {
+layout(binding = 21, std430) buffer AI32s_1 {
   int values[];
 } LUT;
-layout(binding = 50) buffer Dbg_1 {
+layout(binding = 50, std430) buffer Dbg_1 {
   uint offsetCounter;
   uint pad0;
   uint pad1;
@@ -247,19 +247,19 @@
   vec3 bbMax;
 } uniforms;
 
-layout(binding = 10) buffer U32s_1 {
+layout(binding = 10, std430) buffer U32s_1 {
   uint values[];
 } indices;
-layout(binding = 11) buffer F32s_1 {
+layout(binding = 11, std430) buffer F32s_1 {
   float values[];
 } positions;
-layout(binding = 20) buffer AU32s_1 {
+layout(binding = 20, std430) buffer AU32s_1 {
   uint values[];
 } counters;
-layout(binding = 21) buffer AI32s_1 {
+layout(binding = 21, std430) buffer AI32s_1 {
   int values[];
 } LUT;
-layout(binding = 50) buffer Dbg_1 {
+layout(binding = 50, std430) buffer Dbg_1 {
   uint offsetCounter;
   uint pad0;
   uint pad1;
diff --git a/test/bug/tint/1121.wgsl.expected.glsl b/test/bug/tint/1121.wgsl.expected.glsl
index 667cba6..1a96e80 100644
--- a/test/bug/tint/1121.wgsl.expected.glsl
+++ b/test/bug/tint/1121.wgsl.expected.glsl
@@ -7,7 +7,7 @@
   float radius;
 };
 
-layout(binding = 0) buffer LightsBuffer_1 {
+layout(binding = 0, std430) buffer LightsBuffer_1 {
   LightData lights[];
 } lightsBuffer;
 struct TileLightIdData {
@@ -19,7 +19,7 @@
   TileLightIdData data[4];
 };
 
-layout(binding = 0) buffer Tiles_1 {
+layout(binding = 0, std430) buffer Tiles_1 {
   TileLightIdData data[4];
 } tileLightId;
 struct Config {
diff --git a/test/bug/tint/1136.wgsl.expected.glsl b/test/bug/tint/1136.wgsl.expected.glsl
index 3af9770..342a0c8 100644
--- a/test/bug/tint/1136.wgsl.expected.glsl
+++ b/test/bug/tint/1136.wgsl.expected.glsl
@@ -9,7 +9,7 @@
   uint data;
 };
 
-layout(binding = 0) buffer Buffer_1 {
+layout(binding = 0, std430) buffer Buffer_1 {
   uint data;
 } tint_symbol;
 void tint_symbol_1() {
diff --git a/test/bug/tint/1385.wgsl.expected.glsl b/test/bug/tint/1385.wgsl.expected.glsl
index 4031ab0..51423ee 100644
--- a/test/bug/tint/1385.wgsl.expected.glsl
+++ b/test/bug/tint/1385.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 1) buffer data_block_1 {
+layout(binding = 1, std430) buffer data_block_1 {
   int inner[];
 } data;
 int foo() {
diff --git a/test/bug/tint/221.wgsl.expected.glsl b/test/bug/tint/221.wgsl.expected.glsl
index b724d8f..2ea0d24 100644
--- a/test/bug/tint/221.wgsl.expected.glsl
+++ b/test/bug/tint/221.wgsl.expected.glsl
@@ -6,7 +6,7 @@
   uint data[50];
 };
 
-layout(binding = 0) buffer Buf_1 {
+layout(binding = 0, std430) buffer Buf_1 {
   uint count;
   uint data[50];
 } b;
diff --git a/test/bug/tint/294.wgsl.expected.glsl b/test/bug/tint/294.wgsl.expected.glsl
index 4a87759..88fba9c 100644
--- a/test/bug/tint/294.wgsl.expected.glsl
+++ b/test/bug/tint/294.wgsl.expected.glsl
@@ -10,6 +10,6 @@
   vec3 colour;
 };
 
-layout(binding = 1) buffer Lights_1 {
+layout(binding = 1, std430) buffer Lights_1 {
   Light light[];
 } lights;
diff --git a/test/bug/tint/369.wgsl.expected.glsl b/test/bug/tint/369.wgsl.expected.glsl
index f4e86cf..4aa0146 100644
--- a/test/bug/tint/369.wgsl.expected.glsl
+++ b/test/bug/tint/369.wgsl.expected.glsl
@@ -9,7 +9,7 @@
   mat2 m;
 };
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   mat2 m;
 } SSBO;
 layout(binding = 0) uniform S_2 {
diff --git a/test/bug/tint/492.wgsl.expected.glsl b/test/bug/tint/492.wgsl.expected.glsl
index f4c36d6..b702400 100644
--- a/test/bug/tint/492.wgsl.expected.glsl
+++ b/test/bug/tint/492.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   int a;
 };
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   int a;
 } buf;
 void tint_symbol() {
diff --git a/test/bug/tint/534.wgsl.expected.glsl b/test/bug/tint/534.wgsl.expected.glsl
index 8521fbd..e7751d7 100644
--- a/test/bug/tint/534.wgsl.expected.glsl
+++ b/test/bug/tint/534.wgsl.expected.glsl
@@ -8,7 +8,7 @@
   uint channelCount;
 };
 
-layout(binding = 2) buffer OutputBuf_1 {
+layout(binding = 2, std430) buffer OutputBuf_1 {
   uint result[];
 } tint_symbol;
 layout(binding = 3) uniform Uniforms_1 {
diff --git a/test/bug/tint/744.wgsl.expected.glsl b/test/bug/tint/744.wgsl.expected.glsl
index cd60eb6..52221d1 100644
--- a/test/bug/tint/744.wgsl.expected.glsl
+++ b/test/bug/tint/744.wgsl.expected.glsl
@@ -7,13 +7,13 @@
   uvec2 outShape;
 };
 
-layout(binding = 0) buffer Matrix_1 {
+layout(binding = 0, std430) buffer Matrix_1 {
   uint numbers[];
 } firstMatrix;
-layout(binding = 1) buffer Matrix_2 {
+layout(binding = 1, std430) buffer Matrix_2 {
   uint numbers[];
 } secondMatrix;
-layout(binding = 2) buffer Matrix_3 {
+layout(binding = 2, std430) buffer Matrix_3 {
   uint numbers[];
 } resultMatrix;
 layout(binding = 3) uniform Uniforms_1 {
diff --git a/test/bug/tint/757.wgsl.expected.glsl b/test/bug/tint/757.wgsl.expected.glsl
index fab0f57..ea6d4be 100644
--- a/test/bug/tint/757.wgsl.expected.glsl
+++ b/test/bug/tint/757.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   int level;
 };
 
-layout(binding = 3) buffer Result_1 {
+layout(binding = 3, std430) buffer Result_1 {
   float values[];
 } result;
 uniform highp sampler2DArray myTexture_1;
diff --git a/test/bug/tint/827.wgsl.expected.glsl b/test/bug/tint/827.wgsl.expected.glsl
index 9933ba5..e530859 100644
--- a/test/bug/tint/827.wgsl.expected.glsl
+++ b/test/bug/tint/827.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 const uint width = 128u;
-layout(binding = 1) buffer Result_1 {
+layout(binding = 1, std430) buffer Result_1 {
   float values[];
 } result;
 uniform highp sampler2D tex_1;
diff --git a/test/bug/tint/870.spvasm.expected.glsl b/test/bug/tint/870.spvasm.expected.glsl
index 3f0ad90..ed30b13 100644
--- a/test/bug/tint/870.spvasm.expected.glsl
+++ b/test/bug/tint/870.spvasm.expected.glsl
@@ -12,7 +12,7 @@
   sspp962805860buildInformationS passthru;
 };
 
-layout(binding = 2) buffer x_B4_BuildInformation_1 {
+layout(binding = 2, std430) buffer x_B4_BuildInformation_1 {
   sspp962805860buildInformationS passthru;
 } sspp962805860buildInformation;
 void main_1() {
diff --git a/test/bug/tint/913.wgsl.expected.glsl b/test/bug/tint/913.wgsl.expected.glsl
index 3d484af..0559e2d 100644
--- a/test/bug/tint/913.wgsl.expected.glsl
+++ b/test/bug/tint/913.wgsl.expected.glsl
@@ -9,7 +9,7 @@
   uvec2 copySize;
 };
 
-layout(binding = 2) buffer OutputBuf_1 {
+layout(binding = 2, std430) buffer OutputBuf_1 {
   uint result[];
 } tint_symbol;
 layout(binding = 3) uniform Uniforms_1 {
diff --git a/test/bug/tint/914.wgsl.expected.glsl b/test/bug/tint/914.wgsl.expected.glsl
index e0de067..75fc663 100644
--- a/test/bug/tint/914.wgsl.expected.glsl
+++ b/test/bug/tint/914.wgsl.expected.glsl
@@ -7,13 +7,13 @@
   uint dimBOuter;
 };
 
-layout(binding = 0) buffer Matrix_1 {
+layout(binding = 0, std430) buffer Matrix_1 {
   float numbers[];
 } firstMatrix;
-layout(binding = 1) buffer Matrix_2 {
+layout(binding = 1, std430) buffer Matrix_2 {
   float numbers[];
 } secondMatrix;
-layout(binding = 2) buffer Matrix_3 {
+layout(binding = 2, std430) buffer Matrix_3 {
   float numbers[];
 } resultMatrix;
 layout(binding = 3) uniform Uniforms_1 {
diff --git a/test/bug/tint/926.wgsl.expected.glsl b/test/bug/tint/926.wgsl.expected.glsl
index 15a518c..4ed6ac3 100644
--- a/test/bug/tint/926.wgsl.expected.glsl
+++ b/test/bug/tint/926.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   uint vertexCount;
 };
 
-layout(binding = 5) buffer DrawIndirectArgs_1 {
+layout(binding = 5, std430) buffer DrawIndirectArgs_1 {
   uint vertexCount;
 } drawOut;
 uint cubeVerts = 0u;
diff --git a/test/bug/tint/943.spvasm.expected.glsl b/test/bug/tint/943.spvasm.expected.glsl
index f88926b..5ddf3e5 100644
--- a/test/bug/tint/943.spvasm.expected.glsl
+++ b/test/bug/tint/943.spvasm.expected.glsl
@@ -34,18 +34,18 @@
 
 int dimInner_1 = 0;
 int dimBOuter_1 = 0;
-layout(binding = 0) buffer ssbOut_1 {
+layout(binding = 0, std430) buffer ssbOut_1 {
   float result[];
 } x_54;
 uvec3 tint_symbol = uvec3(0u, 0u, 0u);
 uvec3 tint_symbol_1 = uvec3(0u, 0u, 0u);
 shared float mm_Asub[64][64];
 shared float mm_Bsub[64][1];
-layout(binding = 1) buffer ssbA_1 {
+layout(binding = 1, std430) buffer ssbA_1 {
   float A[];
 } x_165;
 int batch = 0;
-layout(binding = 2) buffer ssbB_1 {
+layout(binding = 2, std430) buffer ssbB_1 {
   float B[];
 } x_185;
 bool coordsInBounds_vi2_vi2_(inout ivec2 coord, inout ivec2 shape) {
diff --git a/test/bug/tint/951.spvasm.expected.glsl b/test/bug/tint/951.spvasm.expected.glsl
index 1d048c0..a62e485 100644
--- a/test/bug/tint/951.spvasm.expected.glsl
+++ b/test/bug/tint/951.spvasm.expected.glsl
@@ -19,10 +19,10 @@
   int size;
 };
 
-layout(binding = 0) buffer ssbOut_1 {
+layout(binding = 0, std430) buffer ssbOut_1 {
   float result[];
 } x_16;
-layout(binding = 1) buffer ssbA_1 {
+layout(binding = 1, std430) buffer ssbA_1 {
   float A[];
 } x_20;
 uvec3 tint_symbol = uvec3(0u, 0u, 0u);
diff --git a/test/bug/tint/959.wgsl.expected.glsl b/test/bug/tint/959.wgsl.expected.glsl
index 9ac597c..7538459 100644
--- a/test/bug/tint/959.wgsl.expected.glsl
+++ b/test/bug/tint/959.wgsl.expected.glsl
@@ -5,28 +5,28 @@
   float a;
 };
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   float a;
 } b0;
-layout(binding = 0) buffer S_2 {
+layout(binding = 0, std430) buffer S_2 {
   float a;
 } b1;
-layout(binding = 0) buffer S_3 {
+layout(binding = 0, std430) buffer S_3 {
   float a;
 } b2;
-layout(binding = 0) buffer S_4 {
+layout(binding = 0, std430) buffer S_4 {
   float a;
 } b3;
-layout(binding = 0) buffer S_5 {
+layout(binding = 0, std430) buffer S_5 {
   float a;
 } b4;
-layout(binding = 0) buffer S_6 {
+layout(binding = 0, std430) buffer S_6 {
   float a;
 } b5;
-layout(binding = 0) buffer S_7 {
+layout(binding = 0, std430) buffer S_7 {
   float a;
 } b6;
-layout(binding = 0) buffer S_8 {
+layout(binding = 0, std430) buffer S_8 {
   float a;
 } b7;
 layout(binding = 1) uniform S_9 {
diff --git a/test/bug/tint/977.spvasm.expected.glsl b/test/bug/tint/977.spvasm.expected.glsl
index 9c8e0ab..96d697f 100644
--- a/test/bug/tint/977.spvasm.expected.glsl
+++ b/test/bug/tint/977.spvasm.expected.glsl
@@ -22,7 +22,7 @@
 };
 
 uvec3 tint_symbol = uvec3(0u, 0u, 0u);
-layout(binding = 2) buffer ResultMatrix_1 {
+layout(binding = 2, std430) buffer ResultMatrix_1 {
   float numbers[];
 } resultMatrix;
 float binaryOperation_f1_f1_(inout float a, inout float b) {
diff --git a/test/bug/tint/980.wgsl.expected.glsl b/test/bug/tint/980.wgsl.expected.glsl
index 1019176..6a1e700 100644
--- a/test/bug/tint/980.wgsl.expected.glsl
+++ b/test/bug/tint/980.wgsl.expected.glsl
@@ -12,7 +12,7 @@
   uint i;
 };
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   vec3 v;
   uint i;
 } io;
diff --git a/test/bug/tint/993.wgsl.expected.glsl b/test/bug/tint/993.wgsl.expected.glsl
index 3e60c6e..b0b1868 100644
--- a/test/bug/tint/993.wgsl.expected.glsl
+++ b/test/bug/tint/993.wgsl.expected.glsl
@@ -13,14 +13,14 @@
   uint value;
 };
 
-layout(binding = 1) buffer Result_1 {
+layout(binding = 1, std430) buffer Result_1 {
   uint value;
 } result;
 struct TestData {
   int data[3];
 };
 
-layout(binding = 0) buffer TestData_1 {
+layout(binding = 0, std430) buffer TestData_1 {
   int data[3];
 } s;
 int runTest() {
diff --git a/test/builtins/arrayLength/complex_via_let.wgsl.expected.glsl b/test/builtins/arrayLength/complex_via_let.wgsl.expected.glsl
index f05ef5a..6f43d16 100644
--- a/test/builtins/arrayLength/complex_via_let.wgsl.expected.glsl
+++ b/test/builtins/arrayLength/complex_via_let.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   int a[];
 } G;
 void tint_symbol() {
diff --git a/test/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.glsl b/test/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.glsl
index fa81168..2df0269 100644
--- a/test/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.glsl
+++ b/test/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 0) buffer G_block_1 {
+layout(binding = 0, std430) buffer G_block_1 {
   int inner[];
 } G;
 void tint_symbol() {
diff --git a/test/builtins/arrayLength/deprecated.wgsl.expected.glsl b/test/builtins/arrayLength/deprecated.wgsl.expected.glsl
index 833412f..d447f38 100644
--- a/test/builtins/arrayLength/deprecated.wgsl.expected.glsl
+++ b/test/builtins/arrayLength/deprecated.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   int a[];
 } G;
 void tint_symbol() {
diff --git a/test/builtins/arrayLength/simple.wgsl.expected.glsl b/test/builtins/arrayLength/simple.wgsl.expected.glsl
index f05ef5a..6f43d16 100644
--- a/test/builtins/arrayLength/simple.wgsl.expected.glsl
+++ b/test/builtins/arrayLength/simple.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   int a[];
 } G;
 void tint_symbol() {
diff --git a/test/builtins/arrayLength/simple_no_struct.wgsl.expected.glsl b/test/builtins/arrayLength/simple_no_struct.wgsl.expected.glsl
index fa81168..2df0269 100644
--- a/test/builtins/arrayLength/simple_no_struct.wgsl.expected.glsl
+++ b/test/builtins/arrayLength/simple_no_struct.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 0) buffer G_block_1 {
+layout(binding = 0, std430) buffer G_block_1 {
   int inner[];
 } G;
 void tint_symbol() {
diff --git a/test/builtins/arrayLength/via_let.wgsl.expected.glsl b/test/builtins/arrayLength/via_let.wgsl.expected.glsl
index f05ef5a..6f43d16 100644
--- a/test/builtins/arrayLength/via_let.wgsl.expected.glsl
+++ b/test/builtins/arrayLength/via_let.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   int a[];
 } G;
 void tint_symbol() {
diff --git a/test/builtins/arrayLength/via_let_complex.wgsl.expected.glsl b/test/builtins/arrayLength/via_let_complex.wgsl.expected.glsl
index f05ef5a..6f43d16 100644
--- a/test/builtins/arrayLength/via_let_complex.wgsl.expected.glsl
+++ b/test/builtins/arrayLength/via_let_complex.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   int a[];
 } G;
 void tint_symbol() {
diff --git a/test/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.glsl b/test/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.glsl
index fa81168..2df0269 100644
--- a/test/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.glsl
+++ b/test/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 0) buffer G_block_1 {
+layout(binding = 0, std430) buffer G_block_1 {
   int inner[];
 } G;
 void tint_symbol() {
diff --git a/test/builtins/arrayLength/via_let_no_struct.wgsl.expected.glsl b/test/builtins/arrayLength/via_let_no_struct.wgsl.expected.glsl
index fa81168..2df0269 100644
--- a/test/builtins/arrayLength/via_let_no_struct.wgsl.expected.glsl
+++ b/test/builtins/arrayLength/via_let_no_struct.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 0) buffer G_block_1 {
+layout(binding = 0, std430) buffer G_block_1 {
   int inner[];
 } G;
 void tint_symbol() {
diff --git a/test/builtins/gen/arrayLength/1588cd.wgsl.expected.glsl b/test/builtins/gen/arrayLength/1588cd.wgsl.expected.glsl
index e825ee3..af7a607 100644
--- a/test/builtins/gen/arrayLength/1588cd.wgsl.expected.glsl
+++ b/test/builtins/gen/arrayLength/1588cd.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 1) buffer SB_RO_1 {
+layout(binding = 1, std430) buffer SB_RO_1 {
   int arg_0[];
 } sb_ro;
 void arrayLength_1588cd() {
@@ -35,7 +35,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 1) buffer SB_RO_1 {
+layout(binding = 1, std430) buffer SB_RO_1 {
   int arg_0[];
 } sb_ro;
 void arrayLength_1588cd() {
@@ -63,7 +63,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 1) buffer SB_RO_1 {
+layout(binding = 1, std430) buffer SB_RO_1 {
   int arg_0[];
 } sb_ro;
 void arrayLength_1588cd() {
diff --git a/test/builtins/gen/arrayLength/61b1c7.wgsl.expected.glsl b/test/builtins/gen/arrayLength/61b1c7.wgsl.expected.glsl
index 04d2a2d..c8e824f 100644
--- a/test/builtins/gen/arrayLength/61b1c7.wgsl.expected.glsl
+++ b/test/builtins/gen/arrayLength/61b1c7.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   int arg_0[];
 } sb_rw;
 void arrayLength_61b1c7() {
@@ -35,7 +35,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   int arg_0[];
 } sb_rw;
 void arrayLength_61b1c7() {
@@ -63,7 +63,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   int arg_0[];
 } sb_rw;
 void arrayLength_61b1c7() {
diff --git a/test/builtins/gen/arrayLength/a0f5ca.wgsl.expected.glsl b/test/builtins/gen/arrayLength/a0f5ca.wgsl.expected.glsl
index 371149b..730e08d 100644
--- a/test/builtins/gen/arrayLength/a0f5ca.wgsl.expected.glsl
+++ b/test/builtins/gen/arrayLength/a0f5ca.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 1) buffer SB_RO_1 {
+layout(binding = 1, std430) buffer SB_RO_1 {
   float arg_0[];
 } sb_ro;
 void arrayLength_a0f5ca() {
@@ -35,7 +35,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 1) buffer SB_RO_1 {
+layout(binding = 1, std430) buffer SB_RO_1 {
   float arg_0[];
 } sb_ro;
 void arrayLength_a0f5ca() {
@@ -63,7 +63,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 1) buffer SB_RO_1 {
+layout(binding = 1, std430) buffer SB_RO_1 {
   float arg_0[];
 } sb_ro;
 void arrayLength_a0f5ca() {
diff --git a/test/builtins/gen/arrayLength/cdd123.wgsl.expected.glsl b/test/builtins/gen/arrayLength/cdd123.wgsl.expected.glsl
index 3b94383..3367d5b 100644
--- a/test/builtins/gen/arrayLength/cdd123.wgsl.expected.glsl
+++ b/test/builtins/gen/arrayLength/cdd123.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   float arg_0[];
 } sb_rw;
 void arrayLength_cdd123() {
@@ -35,7 +35,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   float arg_0[];
 } sb_rw;
 void arrayLength_cdd123() {
@@ -63,7 +63,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   float arg_0[];
 } sb_rw;
 void arrayLength_cdd123() {
diff --git a/test/builtins/gen/arrayLength/cfca0a.wgsl.expected.glsl b/test/builtins/gen/arrayLength/cfca0a.wgsl.expected.glsl
index a58d713..55bfb57 100644
--- a/test/builtins/gen/arrayLength/cfca0a.wgsl.expected.glsl
+++ b/test/builtins/gen/arrayLength/cfca0a.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 1) buffer SB_RO_1 {
+layout(binding = 1, std430) buffer SB_RO_1 {
   uint arg_0[];
 } sb_ro;
 void arrayLength_cfca0a() {
@@ -35,7 +35,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 1) buffer SB_RO_1 {
+layout(binding = 1, std430) buffer SB_RO_1 {
   uint arg_0[];
 } sb_ro;
 void arrayLength_cfca0a() {
@@ -63,7 +63,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 1) buffer SB_RO_1 {
+layout(binding = 1, std430) buffer SB_RO_1 {
   uint arg_0[];
 } sb_ro;
 void arrayLength_cfca0a() {
diff --git a/test/builtins/gen/arrayLength/eb510f.wgsl.expected.glsl b/test/builtins/gen/arrayLength/eb510f.wgsl.expected.glsl
index 758a7c4..e48d0cf 100644
--- a/test/builtins/gen/arrayLength/eb510f.wgsl.expected.glsl
+++ b/test/builtins/gen/arrayLength/eb510f.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   uint arg_0[];
 } sb_rw;
 void arrayLength_eb510f() {
@@ -35,7 +35,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   uint arg_0[];
 } sb_rw;
 void arrayLength_eb510f() {
@@ -63,7 +63,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   uint arg_0[];
 } sb_rw;
 void arrayLength_eb510f() {
diff --git a/test/builtins/gen/atomicAdd/8a199a.wgsl.expected.glsl b/test/builtins/gen/atomicAdd/8a199a.wgsl.expected.glsl
index 90a451a..7cfbf78 100644
--- a/test/builtins/gen/atomicAdd/8a199a.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicAdd/8a199a.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   uint arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   uint arg_0;
 } sb_rw;
 void atomicAdd_8a199a() {
@@ -27,7 +27,7 @@
   uint arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   uint arg_0;
 } sb_rw;
 void atomicAdd_8a199a() {
diff --git a/test/builtins/gen/atomicAdd/d32fe4.wgsl.expected.glsl b/test/builtins/gen/atomicAdd/d32fe4.wgsl.expected.glsl
index df84fcc..1e1c730 100644
--- a/test/builtins/gen/atomicAdd/d32fe4.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicAdd/d32fe4.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   int arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   int arg_0;
 } sb_rw;
 void atomicAdd_d32fe4() {
@@ -27,7 +27,7 @@
   int arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   int arg_0;
 } sb_rw;
 void atomicAdd_d32fe4() {
diff --git a/test/builtins/gen/atomicAnd/152966.wgsl.expected.glsl b/test/builtins/gen/atomicAnd/152966.wgsl.expected.glsl
index 18330ed..9f34abb 100644
--- a/test/builtins/gen/atomicAnd/152966.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicAnd/152966.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   int arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   int arg_0;
 } sb_rw;
 void atomicAnd_152966() {
@@ -27,7 +27,7 @@
   int arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   int arg_0;
 } sb_rw;
 void atomicAnd_152966() {
diff --git a/test/builtins/gen/atomicAnd/85a8d9.wgsl.expected.glsl b/test/builtins/gen/atomicAnd/85a8d9.wgsl.expected.glsl
index 63cfda0..fd1e8e9 100644
--- a/test/builtins/gen/atomicAnd/85a8d9.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicAnd/85a8d9.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   uint arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   uint arg_0;
 } sb_rw;
 void atomicAnd_85a8d9() {
@@ -27,7 +27,7 @@
   uint arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   uint arg_0;
 } sb_rw;
 void atomicAnd_85a8d9() {
diff --git a/test/builtins/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.glsl b/test/builtins/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.glsl
index 718abd1..fe25e03 100644
--- a/test/builtins/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.glsl
@@ -13,7 +13,7 @@
   int arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   int arg_0;
 } sb_rw;
 void atomicCompareExchangeWeak_12871c() {
@@ -43,7 +43,7 @@
   int arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   int arg_0;
 } sb_rw;
 void atomicCompareExchangeWeak_12871c() {
diff --git a/test/builtins/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.glsl b/test/builtins/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.glsl
index 58433a2..c7fbeab 100644
--- a/test/builtins/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.glsl
@@ -13,7 +13,7 @@
   uint arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   uint arg_0;
 } sb_rw;
 void atomicCompareExchangeWeak_6673da() {
@@ -43,7 +43,7 @@
   uint arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   uint arg_0;
 } sb_rw;
 void atomicCompareExchangeWeak_6673da() {
diff --git a/test/builtins/gen/atomicExchange/d59712.wgsl.expected.glsl b/test/builtins/gen/atomicExchange/d59712.wgsl.expected.glsl
index 144ff7f..081d2a5 100644
--- a/test/builtins/gen/atomicExchange/d59712.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicExchange/d59712.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   uint arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   uint arg_0;
 } sb_rw;
 void atomicExchange_d59712() {
@@ -27,7 +27,7 @@
   uint arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   uint arg_0;
 } sb_rw;
 void atomicExchange_d59712() {
diff --git a/test/builtins/gen/atomicExchange/f2e22f.wgsl.expected.glsl b/test/builtins/gen/atomicExchange/f2e22f.wgsl.expected.glsl
index cad28eb..270c305 100644
--- a/test/builtins/gen/atomicExchange/f2e22f.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicExchange/f2e22f.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   int arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   int arg_0;
 } sb_rw;
 void atomicExchange_f2e22f() {
@@ -27,7 +27,7 @@
   int arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   int arg_0;
 } sb_rw;
 void atomicExchange_f2e22f() {
diff --git a/test/builtins/gen/atomicLoad/0806ad.wgsl.expected.glsl b/test/builtins/gen/atomicLoad/0806ad.wgsl.expected.glsl
index a76e496..0306ab2 100644
--- a/test/builtins/gen/atomicLoad/0806ad.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicLoad/0806ad.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   int arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   int arg_0;
 } sb_rw;
 void atomicLoad_0806ad() {
@@ -27,7 +27,7 @@
   int arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   int arg_0;
 } sb_rw;
 void atomicLoad_0806ad() {
diff --git a/test/builtins/gen/atomicLoad/fe6cc3.wgsl.expected.glsl b/test/builtins/gen/atomicLoad/fe6cc3.wgsl.expected.glsl
index b7a75c0..07ac3ee 100644
--- a/test/builtins/gen/atomicLoad/fe6cc3.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicLoad/fe6cc3.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   uint arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   uint arg_0;
 } sb_rw;
 void atomicLoad_fe6cc3() {
@@ -27,7 +27,7 @@
   uint arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   uint arg_0;
 } sb_rw;
 void atomicLoad_fe6cc3() {
diff --git a/test/builtins/gen/atomicMax/51b9be.wgsl.expected.glsl b/test/builtins/gen/atomicMax/51b9be.wgsl.expected.glsl
index 16d8fb4..f726e34 100644
--- a/test/builtins/gen/atomicMax/51b9be.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicMax/51b9be.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   uint arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   uint arg_0;
 } sb_rw;
 void atomicMax_51b9be() {
@@ -27,7 +27,7 @@
   uint arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   uint arg_0;
 } sb_rw;
 void atomicMax_51b9be() {
diff --git a/test/builtins/gen/atomicMax/92aa72.wgsl.expected.glsl b/test/builtins/gen/atomicMax/92aa72.wgsl.expected.glsl
index 9811e87..1ffdba3 100644
--- a/test/builtins/gen/atomicMax/92aa72.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicMax/92aa72.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   int arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   int arg_0;
 } sb_rw;
 void atomicMax_92aa72() {
@@ -27,7 +27,7 @@
   int arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   int arg_0;
 } sb_rw;
 void atomicMax_92aa72() {
diff --git a/test/builtins/gen/atomicMin/8e38dc.wgsl.expected.glsl b/test/builtins/gen/atomicMin/8e38dc.wgsl.expected.glsl
index 43a6e16..d408681 100644
--- a/test/builtins/gen/atomicMin/8e38dc.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicMin/8e38dc.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   int arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   int arg_0;
 } sb_rw;
 void atomicMin_8e38dc() {
@@ -27,7 +27,7 @@
   int arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   int arg_0;
 } sb_rw;
 void atomicMin_8e38dc() {
diff --git a/test/builtins/gen/atomicMin/c67a74.wgsl.expected.glsl b/test/builtins/gen/atomicMin/c67a74.wgsl.expected.glsl
index 42143c6..4def8e7 100644
--- a/test/builtins/gen/atomicMin/c67a74.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicMin/c67a74.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   uint arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   uint arg_0;
 } sb_rw;
 void atomicMin_c67a74() {
@@ -27,7 +27,7 @@
   uint arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   uint arg_0;
 } sb_rw;
 void atomicMin_c67a74() {
diff --git a/test/builtins/gen/atomicOr/5e95d4.wgsl.expected.glsl b/test/builtins/gen/atomicOr/5e95d4.wgsl.expected.glsl
index ecde95d..01985c1 100644
--- a/test/builtins/gen/atomicOr/5e95d4.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicOr/5e95d4.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   uint arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   uint arg_0;
 } sb_rw;
 void atomicOr_5e95d4() {
@@ -27,7 +27,7 @@
   uint arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   uint arg_0;
 } sb_rw;
 void atomicOr_5e95d4() {
diff --git a/test/builtins/gen/atomicOr/8d96a0.wgsl.expected.glsl b/test/builtins/gen/atomicOr/8d96a0.wgsl.expected.glsl
index 049e089..3838592 100644
--- a/test/builtins/gen/atomicOr/8d96a0.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicOr/8d96a0.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   int arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   int arg_0;
 } sb_rw;
 void atomicOr_8d96a0() {
@@ -27,7 +27,7 @@
   int arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   int arg_0;
 } sb_rw;
 void atomicOr_8d96a0() {
diff --git a/test/builtins/gen/atomicStore/cdc29e.wgsl.expected.glsl b/test/builtins/gen/atomicStore/cdc29e.wgsl.expected.glsl
index d31459d..970c11b 100644
--- a/test/builtins/gen/atomicStore/cdc29e.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicStore/cdc29e.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   uint arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   uint arg_0;
 } sb_rw;
 void atomicStore_cdc29e() {
@@ -27,7 +27,7 @@
   uint arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   uint arg_0;
 } sb_rw;
 void atomicStore_cdc29e() {
diff --git a/test/builtins/gen/atomicStore/d1e9a6.wgsl.expected.glsl b/test/builtins/gen/atomicStore/d1e9a6.wgsl.expected.glsl
index 7f0ccd6..a5d2959 100644
--- a/test/builtins/gen/atomicStore/d1e9a6.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicStore/d1e9a6.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   int arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   int arg_0;
 } sb_rw;
 void atomicStore_d1e9a6() {
@@ -27,7 +27,7 @@
   int arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   int arg_0;
 } sb_rw;
 void atomicStore_d1e9a6() {
diff --git a/test/builtins/gen/atomicSub/051100.wgsl.expected.glsl b/test/builtins/gen/atomicSub/051100.wgsl.expected.glsl
index bf4dc03..62a7e3a 100644
--- a/test/builtins/gen/atomicSub/051100.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicSub/051100.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   int arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   int arg_0;
 } sb_rw;
 void atomicSub_051100() {
@@ -27,7 +27,7 @@
   int arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   int arg_0;
 } sb_rw;
 void atomicSub_051100() {
diff --git a/test/builtins/gen/atomicSub/15bfc9.wgsl.expected.glsl b/test/builtins/gen/atomicSub/15bfc9.wgsl.expected.glsl
index 82d64e2..739d9c9 100644
--- a/test/builtins/gen/atomicSub/15bfc9.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicSub/15bfc9.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   uint arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   uint arg_0;
 } sb_rw;
 void atomicSub_15bfc9() {
@@ -27,7 +27,7 @@
   uint arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   uint arg_0;
 } sb_rw;
 void atomicSub_15bfc9() {
diff --git a/test/builtins/gen/atomicXor/54510e.wgsl.expected.glsl b/test/builtins/gen/atomicXor/54510e.wgsl.expected.glsl
index 6353458..5427999 100644
--- a/test/builtins/gen/atomicXor/54510e.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicXor/54510e.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   uint arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   uint arg_0;
 } sb_rw;
 void atomicXor_54510e() {
@@ -27,7 +27,7 @@
   uint arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   uint arg_0;
 } sb_rw;
 void atomicXor_54510e() {
diff --git a/test/builtins/gen/atomicXor/c1b78c.wgsl.expected.glsl b/test/builtins/gen/atomicXor/c1b78c.wgsl.expected.glsl
index f48a364..8e45daa 100644
--- a/test/builtins/gen/atomicXor/c1b78c.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicXor/c1b78c.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   int arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   int arg_0;
 } sb_rw;
 void atomicXor_c1b78c() {
@@ -27,7 +27,7 @@
   int arg_0;
 };
 
-layout(binding = 0) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_1 {
   int arg_0;
 } sb_rw;
 void atomicXor_c1b78c() {
diff --git a/test/builtins/gen/isFinite/34d32b.wgsl.expected.glsl b/test/builtins/gen/isFinite/34d32b.wgsl.expected.glsl
index 6de5cd4..28d6f70 100644
--- a/test/builtins/gen/isFinite/34d32b.wgsl.expected.glsl
+++ b/test/builtins/gen/isFinite/34d32b.wgsl.expected.glsl
@@ -24,9 +24,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: 'isfinite' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 2-component vector of bool'
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -47,9 +47,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: 'isfinite' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 2-component vector of bool'
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -71,9 +71,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: 'isfinite' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 2-component vector of bool'
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/isFinite/426f9f.wgsl.expected.glsl b/test/builtins/gen/isFinite/426f9f.wgsl.expected.glsl
index 51d1125..e097925 100644
--- a/test/builtins/gen/isFinite/426f9f.wgsl.expected.glsl
+++ b/test/builtins/gen/isFinite/426f9f.wgsl.expected.glsl
@@ -24,9 +24,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: 'isfinite' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp bool'
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -47,9 +47,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: 'isfinite' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp bool'
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -71,9 +71,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: 'isfinite' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp bool'
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/isFinite/8a23ad.wgsl.expected.glsl b/test/builtins/gen/isFinite/8a23ad.wgsl.expected.glsl
index a4f158f..2493776 100644
--- a/test/builtins/gen/isFinite/8a23ad.wgsl.expected.glsl
+++ b/test/builtins/gen/isFinite/8a23ad.wgsl.expected.glsl
@@ -24,9 +24,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: 'isfinite' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 3-component vector of bool'
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -47,9 +47,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: 'isfinite' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 3-component vector of bool'
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -71,9 +71,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: 'isfinite' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 3-component vector of bool'
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/isFinite/f31987.wgsl.expected.glsl b/test/builtins/gen/isFinite/f31987.wgsl.expected.glsl
index 3d49f8e..445fb96 100644
--- a/test/builtins/gen/isFinite/f31987.wgsl.expected.glsl
+++ b/test/builtins/gen/isFinite/f31987.wgsl.expected.glsl
@@ -24,9 +24,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: 'isfinite' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 4-component vector of bool'
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -47,9 +47,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: 'isfinite' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 4-component vector of bool'
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -71,9 +71,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: 'isfinite' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 4-component vector of bool'
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/isNormal/863dcd.wgsl.expected.glsl b/test/builtins/gen/isNormal/863dcd.wgsl.expected.glsl
index c33bf3e..4d7f3fe 100644
--- a/test/builtins/gen/isNormal/863dcd.wgsl.expected.glsl
+++ b/test/builtins/gen/isNormal/863dcd.wgsl.expected.glsl
@@ -31,8 +31,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'uint4' : undeclared identifier
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: 'uint4' : undeclared identifier 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -60,8 +60,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'uint4' : undeclared identifier
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: 'uint4' : undeclared identifier 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -90,8 +90,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'uint4' : undeclared identifier
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: 'uint4' : undeclared identifier 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/isNormal/b00ab1.wgsl.expected.glsl b/test/builtins/gen/isNormal/b00ab1.wgsl.expected.glsl
index ed74f8e..0084bec 100644
--- a/test/builtins/gen/isNormal/b00ab1.wgsl.expected.glsl
+++ b/test/builtins/gen/isNormal/b00ab1.wgsl.expected.glsl
@@ -31,8 +31,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'uint2' : undeclared identifier
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: 'uint2' : undeclared identifier 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -60,8 +60,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'uint2' : undeclared identifier
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: 'uint2' : undeclared identifier 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -90,8 +90,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'uint2' : undeclared identifier
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: 'uint2' : undeclared identifier 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/isNormal/c286b7.wgsl.expected.glsl b/test/builtins/gen/isNormal/c286b7.wgsl.expected.glsl
index 79e52f6..cf69d33 100644
--- a/test/builtins/gen/isNormal/c286b7.wgsl.expected.glsl
+++ b/test/builtins/gen/isNormal/c286b7.wgsl.expected.glsl
@@ -31,8 +31,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'uint3' : undeclared identifier
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: 'uint3' : undeclared identifier 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -60,8 +60,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'uint3' : undeclared identifier
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: 'uint3' : undeclared identifier 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -90,8 +90,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'uint3' : undeclared identifier
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: 'uint3' : undeclared identifier 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/isNormal/c6e880.wgsl.expected.glsl b/test/builtins/gen/isNormal/c6e880.wgsl.expected.glsl
index ef28761..5974f96 100644
--- a/test/builtins/gen/isNormal/c6e880.wgsl.expected.glsl
+++ b/test/builtins/gen/isNormal/c6e880.wgsl.expected.glsl
@@ -31,9 +31,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'asuint' : no matching overloaded function found
+ERROR: 0:5: 'asuint' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp uint'
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -61,9 +61,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'asuint' : no matching overloaded function found
+ERROR: 0:5: 'asuint' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump uint'
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -92,9 +92,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'asuint' : no matching overloaded function found
+ERROR: 0:5: 'asuint' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp uint'
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/repeated_use.wgsl.expected.glsl b/test/builtins/repeated_use.wgsl.expected.glsl
index 450afef..a27347a 100644
--- a/test/builtins/repeated_use.wgsl.expected.glsl
+++ b/test/builtins/repeated_use.wgsl.expected.glsl
@@ -97,8 +97,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'uint4' : undeclared identifier
-ERROR: 0:5: '' : compilation terminated
+ERROR: 0:5: 'uint4' : undeclared identifier 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/expressions/swizzle/write/packed_vec3/f32.wgsl.expected.glsl b/test/expressions/swizzle/write/packed_vec3/f32.wgsl.expected.glsl
index b04cc88..f85921e 100644
--- a/test/expressions/swizzle/write/packed_vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/swizzle/write/packed_vec3/f32.wgsl.expected.glsl
@@ -9,7 +9,7 @@
   vec3 v;
 };
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   vec3 v;
 } U;
 void f() {
diff --git a/test/expressions/swizzle/write/packed_vec3/i32.wgsl.expected.glsl b/test/expressions/swizzle/write/packed_vec3/i32.wgsl.expected.glsl
index b50dd2e..64d86eb 100644
--- a/test/expressions/swizzle/write/packed_vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/swizzle/write/packed_vec3/i32.wgsl.expected.glsl
@@ -9,7 +9,7 @@
   ivec3 v;
 };
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   ivec3 v;
 } U;
 void f() {
diff --git a/test/expressions/swizzle/write/packed_vec3/u32.wgsl.expected.glsl b/test/expressions/swizzle/write/packed_vec3/u32.wgsl.expected.glsl
index 6a8666c..358bf4f 100644
--- a/test/expressions/swizzle/write/packed_vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/swizzle/write/packed_vec3/u32.wgsl.expected.glsl
@@ -9,7 +9,7 @@
   uvec3 v;
 };
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   uvec3 v;
 } U;
 void f() {
diff --git a/test/layout/storage/mat2x2/f32.wgsl.expected.glsl b/test/layout/storage/mat2x2/f32.wgsl.expected.glsl
index 931fe1d..7c741c1 100644
--- a/test/layout/storage/mat2x2/f32.wgsl.expected.glsl
+++ b/test/layout/storage/mat2x2/f32.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   mat2 m;
 };
 
-layout(binding = 0) buffer SSBO_1 {
+layout(binding = 0, std430) buffer SSBO_1 {
   mat2 m;
 } ssbo;
 void f() {
diff --git a/test/layout/storage/mat2x2/stride/16.spvasm.expected.glsl b/test/layout/storage/mat2x2/stride/16.spvasm.expected.glsl
index e82307f..d724455 100644
--- a/test/layout/storage/mat2x2/stride/16.spvasm.expected.glsl
+++ b/test/layout/storage/mat2x2/stride/16.spvasm.expected.glsl
@@ -9,7 +9,7 @@
   strided_arr m[2];
 };
 
-layout(binding = 0) buffer SSBO_1 {
+layout(binding = 0, std430) buffer SSBO_1 {
   strided_arr m[2];
 } ssbo;
 mat2 arr_to_mat2x2_stride_16(strided_arr arr[2]) {
diff --git a/test/ptr_ref/load/local/ptr_storage.wgsl.expected.glsl b/test/ptr_ref/load/local/ptr_storage.wgsl.expected.glsl
index eda6fc6..c8dfc57 100644
--- a/test/ptr_ref/load/local/ptr_storage.wgsl.expected.glsl
+++ b/test/ptr_ref/load/local/ptr_storage.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   int a;
 };
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   int a;
 } v;
 void tint_symbol() {
diff --git a/test/samples/compute_boids.wgsl.expected.glsl b/test/samples/compute_boids.wgsl.expected.glsl
index d44de14..44aa80c 100644
--- a/test/samples/compute_boids.wgsl.expected.glsl
+++ b/test/samples/compute_boids.wgsl.expected.glsl
@@ -100,10 +100,10 @@
   float rule3Scale;
 } params;
 
-layout(binding = 1) buffer Particles_1 {
+layout(binding = 1, std430) buffer Particles_1 {
   Particle particles[5];
 } particlesA;
-layout(binding = 2) buffer Particles_2 {
+layout(binding = 2, std430) buffer Particles_2 {
   Particle particles[5];
 } particlesB;
 void comp_main(uvec3 tint_symbol) {
diff --git a/test/shader_io/shared_struct_storage_buffer.wgsl.expected.glsl b/test/shader_io/shared_struct_storage_buffer.wgsl.expected.glsl
index 69b3155..321e231 100644
--- a/test/shader_io/shared_struct_storage_buffer.wgsl.expected.glsl
+++ b/test/shader_io/shared_struct_storage_buffer.wgsl.expected.glsl
@@ -11,7 +11,7 @@
   vec4 v;
 };
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   float f;
   uint u;
   vec4 v;
@@ -29,7 +29,7 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:21: 'assign' :  cannot convert from ' in structure{ global mediump float f,  global mediump uint u,  global mediump 4-component vector of float v}' to 'layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer mediump float f, layout( column_major shared) buffer mediump uint u, layout( column_major shared) buffer mediump 4-component vector of float v}'
+ERROR: 0:21: 'assign' :  cannot convert from ' in structure{ global mediump float f,  global mediump uint u,  global mediump 4-component vector of float v}' to 'layout( binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer mediump float f, layout( column_major std430 offset=4) buffer mediump uint u, layout( column_major std430 offset=16) buffer mediump 4-component vector of float v}'
 ERROR: 0:21: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.glsl b/test/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.glsl
index cf0aef0..ae445ac 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.glsl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.glsl
@@ -13,7 +13,7 @@
   uint i;
 } uniforms;
 
-layout(binding = 0) buffer OuterS_1 {
+layout(binding = 0, std430) buffer OuterS_1 {
   InnerS a1[];
 } s1;
 void tint_symbol() {
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.glsl b/test/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.glsl
index 28a11c1..9ac6327 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.glsl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.glsl
@@ -19,7 +19,7 @@
   uint j;
 } uniforms;
 
-layout(binding = 0) buffer OuterS_1 {
+layout(binding = 0, std430) buffer OuterS_1 {
   S1 a1[];
 } s;
 void tint_symbol() {
diff --git a/test/statements/assign/phony/addr_of_non_constructable.wgsl.expected.glsl b/test/statements/assign/phony/addr_of_non_constructable.wgsl.expected.glsl
index 09eb486..8a72b47 100644
--- a/test/statements/assign/phony/addr_of_non_constructable.wgsl.expected.glsl
+++ b/test/statements/assign/phony/addr_of_non_constructable.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   int arr[];
 } s;
 void tint_symbol() {
diff --git a/test/statements/assign/phony/addr_of_runtime_array.wgsl.expected.glsl b/test/statements/assign/phony/addr_of_runtime_array.wgsl.expected.glsl
index 09eb486..8a72b47 100644
--- a/test/statements/assign/phony/addr_of_runtime_array.wgsl.expected.glsl
+++ b/test/statements/assign/phony/addr_of_runtime_array.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 precision mediump float;
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   int arr[];
 } s;
 void tint_symbol() {
diff --git a/test/statements/assign/phony/storage_buffer.wgsl.expected.glsl b/test/statements/assign/phony/storage_buffer.wgsl.expected.glsl
index 44d8fcc..e1a9e20 100644
--- a/test/statements/assign/phony/storage_buffer.wgsl.expected.glsl
+++ b/test/statements/assign/phony/storage_buffer.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   int i;
 };
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   int i;
 } s;
 void tint_symbol() {
diff --git a/test/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromAccessChain.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromAccessChain.spvasm.expected.glsl
index 6e4715f..2e8e85b 100644
--- a/test/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromAccessChain.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromAccessChain.spvasm.expected.glsl
@@ -8,7 +8,7 @@
   uint rtarr[];
 };
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   uint first;
   uint rtarr[];
 } myvar;
diff --git a/test/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromVar.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromVar.spvasm.expected.glsl
index 6e4715f..2e8e85b 100644
--- a/test/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromVar.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromVar.spvasm.expected.glsl
@@ -8,7 +8,7 @@
   uint rtarr[];
 };
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   uint first;
   uint rtarr[];
 } myvar;
diff --git a/test/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_RuntimeArray.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_RuntimeArray.spvasm.expected.glsl
index 2447bc0..2781744 100644
--- a/test/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_RuntimeArray.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_RuntimeArray.spvasm.expected.glsl
@@ -8,7 +8,7 @@
   float age[];
 };
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   float field0;
   float age[];
 } myvar;
diff --git a/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_Cascaded.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_Cascaded.spvasm.expected.glsl
index f100aa6..f777541 100644
--- a/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_Cascaded.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_Cascaded.spvasm.expected.glsl
@@ -8,7 +8,7 @@
   uint field1[];
 };
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   uint field0;
   uint field1[];
 } myvar;
diff --git a/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded.spvasm.expected.glsl
index 6b48d19..dfa261f 100644
--- a/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded.spvasm.expected.glsl
@@ -8,7 +8,7 @@
   uint field1[];
 };
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   uint field0;
   uint field1[];
 } myvar;
diff --git a/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded_InBoundsAccessChain.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded_InBoundsAccessChain.spvasm.expected.glsl
index 6b48d19..dfa261f 100644
--- a/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded_InBoundsAccessChain.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded_InBoundsAccessChain.spvasm.expected.glsl
@@ -8,7 +8,7 @@
   uint field1[];
 };
 
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   uint field0;
   uint field1[];
 } myvar;
diff --git a/test/vk-gl-cts/graphicsfuzz/barrier-in-loop-with-break/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/barrier-in-loop-with-break/0-opt.spvasm.expected.glsl
index 1c13254..bc6900e 100644
--- a/test/vk-gl-cts/graphicsfuzz/barrier-in-loop-with-break/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/barrier-in-loop-with-break/0-opt.spvasm.expected.glsl
@@ -13,7 +13,7 @@
 };
 
 uvec3 tint_symbol = uvec3(0u, 0u, 0u);
-layout(binding = 0) buffer doesNotMatter_1 {
+layout(binding = 0, std430) buffer doesNotMatter_1 {
   int global_seed;
   int data[];
 } x_7;
diff --git a/test/vk-gl-cts/graphicsfuzz/barrier-in-loop-with-break/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/barrier-in-loop-with-break/0-opt.wgsl.expected.glsl
index acddae3..a7ca19e 100644
--- a/test/vk-gl-cts/graphicsfuzz/barrier-in-loop-with-break/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/barrier-in-loop-with-break/0-opt.wgsl.expected.glsl
@@ -17,7 +17,7 @@
 };
 
 uvec3 tint_symbol = uvec3(0u, 0u, 0u);
-layout(binding = 0) buffer doesNotMatter_1 {
+layout(binding = 0, std430) buffer doesNotMatter_1 {
   int global_seed;
   int data[];
 } x_7;
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.glsl
index 7d514df..7ccedbd 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.glsl
@@ -5,25 +5,25 @@
 precision mediump float;
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   int el;
 };
 
 struct buf1 {
-  tint_padded_array_element x_GLF_uniform_int_values[2];
+  strided_arr x_GLF_uniform_int_values[2];
 };
 
-struct tint_padded_array_element_1 {
+struct strided_arr_1 {
   float el;
 };
 
 struct buf0 {
-  tint_padded_array_element_1 x_GLF_uniform_float_values[1];
+  strided_arr_1 x_GLF_uniform_float_values[1];
 };
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 layout(binding = 1) uniform buf1_1 {
-  tint_padded_array_element x_GLF_uniform_int_values[2];
+  strided_arr x_GLF_uniform_int_values[2];
 } x_8;
 
 void main_1() {
@@ -92,7 +92,7 @@
 }
 Error parsing GLSL shader:
 ERROR: 0:43: '|' :  wrong operand types: no operation '|' exists that takes a left-hand operand of type ' global bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:43: '' : compilation terminated
+ERROR: 0:43: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.wgsl.expected.glsl
index 604dfed..4d69683 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.wgsl.expected.glsl
@@ -118,7 +118,7 @@
 }
 Error parsing GLSL shader:
 ERROR: 0:32: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' const float' and a right operand of type ' const float' (or there is no acceptable conversion)
-ERROR: 0:32: '' : compilation terminated
+ERROR: 0:32: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.spvasm.expected.glsl
index 4c65bdc..ce822d7 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.spvasm.expected.glsl
@@ -11,16 +11,16 @@
 
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   int el;
 };
 
 struct buf0 {
-  tint_padded_array_element x_GLF_uniform_int_values[3];
+  strided_arr x_GLF_uniform_int_values[3];
 };
 
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element x_GLF_uniform_int_values[3];
+  strided_arr x_GLF_uniform_int_values[3];
 } x_6;
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.spvasm.expected.glsl
index fe32bd4..944bf9e 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.spvasm.expected.glsl
@@ -4,29 +4,29 @@
 precision mediump float;
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   float el;
 };
 
 struct buf0 {
-  tint_padded_array_element x_GLF_uniform_float_values[1];
+  strided_arr x_GLF_uniform_float_values[1];
 };
 
-struct tint_padded_array_element_1 {
+struct strided_arr_1 {
   int el;
 };
 
 struct buf1 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[3];
+  strided_arr_1 x_GLF_uniform_int_values[3];
 };
 
 vec4 tint_symbol = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element x_GLF_uniform_float_values[1];
+  strided_arr x_GLF_uniform_float_values[1];
 } x_8;
 
 layout(binding = 1) uniform buf1_1 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[3];
+  strided_arr_1 x_GLF_uniform_int_values[3];
 } x_11;
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.spvasm.expected.glsl
index 93a8edf..5a6fcec 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.spvasm.expected.glsl
@@ -4,16 +4,16 @@
 precision mediump float;
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   int el;
 };
 
 struct buf0 {
-  tint_padded_array_element x_GLF_uniform_int_values[4];
+  strided_arr x_GLF_uniform_int_values[4];
 };
 
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element x_GLF_uniform_int_values[4];
+  strided_arr x_GLF_uniform_int_values[4];
 } x_5;
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.spvasm.expected.glsl
index deecf4f..3765e73 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.spvasm.expected.glsl
@@ -11,42 +11,42 @@
 
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   float el;
 };
 
 struct buf1 {
-  tint_padded_array_element x_GLF_uniform_float_values[3];
+  strided_arr x_GLF_uniform_float_values[3];
 };
 
-struct tint_padded_array_element_1 {
+struct strided_arr_1 {
   int el;
 };
 
 struct buf2 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[4];
+  strided_arr_1 x_GLF_uniform_int_values[4];
 };
 
 struct buf3 {
   int three;
 };
 
-struct tint_padded_array_element_2 {
+struct strided_arr_2 {
   uint el;
 };
 
 struct buf0 {
-  tint_padded_array_element_2 x_GLF_uniform_uint_values[1];
+  strided_arr_2 x_GLF_uniform_uint_values[1];
 };
 
 vec4 tint_symbol = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 layout(binding = 1) uniform buf1_1 {
-  tint_padded_array_element x_GLF_uniform_float_values[3];
+  strided_arr x_GLF_uniform_float_values[3];
 } x_8;
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 layout(binding = 2) uniform buf2_1 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[4];
+  strided_arr_1 x_GLF_uniform_int_values[4];
 } x_12;
 
 layout(binding = 3) uniform buf3_1 {
@@ -54,7 +54,7 @@
 } x_14;
 
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element_2 x_GLF_uniform_uint_values[1];
+  strided_arr_2 x_GLF_uniform_uint_values[1];
 } x_16;
 
 void func0_() {
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.spvasm.expected.glsl
index 0662c76..6cedb1f 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.spvasm.expected.glsl
@@ -4,16 +4,16 @@
 precision mediump float;
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   int el;
 };
 
 struct buf0 {
-  tint_padded_array_element x_GLF_uniform_int_values[4];
+  strided_arr x_GLF_uniform_int_values[4];
 };
 
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element x_GLF_uniform_int_values[4];
+  strided_arr x_GLF_uniform_int_values[4];
 } x_6;
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.spvasm.expected.glsl
index abe7c04..87d316c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.spvasm.expected.glsl
@@ -4,20 +4,20 @@
 precision mediump float;
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   float el;
 };
 
 struct buf1 {
-  tint_padded_array_element x_GLF_uniform_float_values[2];
+  strided_arr x_GLF_uniform_float_values[2];
 };
 
-struct tint_padded_array_element_1 {
+struct strided_arr_1 {
   int el;
 };
 
 struct buf0 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[3];
+  strided_arr_1 x_GLF_uniform_int_values[3];
 };
 
 struct buf2 {
@@ -26,11 +26,11 @@
 
 int x_GLF_global_loop_count = 0;
 layout(binding = 1) uniform buf1_1 {
-  tint_padded_array_element x_GLF_uniform_float_values[2];
+  strided_arr x_GLF_uniform_float_values[2];
 } x_7;
 
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[3];
+  strided_arr_1 x_GLF_uniform_int_values[3];
 } x_10;
 
 layout(binding = 2) uniform buf2_1 {
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.spvasm.expected.glsl
index b3a2077..465bf71 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.spvasm.expected.glsl
@@ -4,30 +4,30 @@
 precision mediump float;
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   float el;
 };
 
 struct buf0 {
-  tint_padded_array_element x_GLF_uniform_float_values[1];
+  strided_arr x_GLF_uniform_float_values[1];
 };
 
-struct tint_padded_array_element_1 {
+struct strided_arr_1 {
   int el;
 };
 
 struct buf1 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[2];
+  strided_arr_1 x_GLF_uniform_int_values[2];
 };
 
 vec4 tint_symbol = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element x_GLF_uniform_float_values[1];
+  strided_arr x_GLF_uniform_float_values[1];
 } x_8;
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 layout(binding = 1) uniform buf1_1 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[2];
+  strided_arr_1 x_GLF_uniform_int_values[2];
 } x_10;
 
 void main_1() {
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.spvasm.expected.glsl
index 0ee42ce..b850705 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.spvasm.expected.glsl
@@ -4,16 +4,16 @@
 precision mediump float;
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   float el;
 };
 
 struct buf0 {
-  tint_padded_array_element x_GLF_uniform_float_values[1];
+  strided_arr x_GLF_uniform_float_values[1];
 };
 
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element x_GLF_uniform_float_values[1];
+  strided_arr x_GLF_uniform_float_values[1];
 } x_6;
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.glsl
index 9dcb6b4..e9dcfbe 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.glsl
@@ -4,17 +4,17 @@
 precision mediump float;
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   int el;
 };
 
 struct buf0 {
-  tint_padded_array_element x_GLF_uniform_int_values[3];
+  strided_arr x_GLF_uniform_int_values[3];
 };
 
 int x_GLF_global_loop_count = 0;
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element x_GLF_uniform_int_values[3];
+  strided_arr x_GLF_uniform_int_values[3];
 } x_7;
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.glsl
index fba2266..3fbdde5 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.glsl
@@ -4,16 +4,16 @@
 precision mediump float;
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   int el;
 };
 
 struct buf0 {
-  tint_padded_array_element x_GLF_uniform_int_values[5];
+  strided_arr x_GLF_uniform_int_values[5];
 };
 
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element x_GLF_uniform_int_values[5];
+  strided_arr x_GLF_uniform_int_values[5];
 } x_6;
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.spvasm.expected.glsl
index 077ea9b..5328e56 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.spvasm.expected.glsl
@@ -16,28 +16,28 @@
 
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   float el;
 };
 
 struct buf0 {
-  tint_padded_array_element x_GLF_uniform_float_values[2];
+  strided_arr x_GLF_uniform_float_values[2];
 };
 
-struct tint_padded_array_element_1 {
+struct strided_arr_1 {
   int el;
 };
 
 struct buf1 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[4];
+  strided_arr_1 x_GLF_uniform_int_values[4];
 };
 
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element x_GLF_uniform_float_values[2];
+  strided_arr x_GLF_uniform_float_values[2];
 } x_6;
 
 layout(binding = 1) uniform buf1_1 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[4];
+  strided_arr_1 x_GLF_uniform_int_values[4];
 } x_10;
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-mul-div-rem-if-undefined-divide-mix/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-mul-div-rem-if-undefined-divide-mix/0-opt.spvasm.expected.glsl
index 0942b77..7b65985 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-mul-div-rem-if-undefined-divide-mix/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-mul-div-rem-if-undefined-divide-mix/0-opt.spvasm.expected.glsl
@@ -4,30 +4,30 @@
 precision mediump float;
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   int el;
 };
 
 struct buf0 {
-  tint_padded_array_element x_GLF_uniform_int_values[2];
+  strided_arr x_GLF_uniform_int_values[2];
 };
 
-struct tint_padded_array_element_1 {
+struct strided_arr_1 {
   float el;
 };
 
 struct buf1 {
-  tint_padded_array_element_1 x_GLF_uniform_float_values[2];
+  strided_arr_1 x_GLF_uniform_float_values[2];
 };
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element x_GLF_uniform_int_values[2];
+  strided_arr x_GLF_uniform_int_values[2];
 } x_8;
 
 vec4 tint_symbol = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 layout(binding = 1) uniform buf1_1 {
-  tint_padded_array_element_1 x_GLF_uniform_float_values[2];
+  strided_arr_1 x_GLF_uniform_float_values[2];
 } x_10;
 
 float f1_f1_(inout float a) {
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.spvasm.expected.glsl
index 614a628..26f9977 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.spvasm.expected.glsl
@@ -16,28 +16,28 @@
 
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   float el;
 };
 
 struct buf1 {
-  tint_padded_array_element x_GLF_uniform_float_values[7];
+  strided_arr x_GLF_uniform_float_values[7];
 };
 
-struct tint_padded_array_element_1 {
+struct strided_arr_1 {
   int el;
 };
 
 struct buf0 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[4];
+  strided_arr_1 x_GLF_uniform_int_values[4];
 };
 
 layout(binding = 1) uniform buf1_1 {
-  tint_padded_array_element x_GLF_uniform_float_values[7];
+  strided_arr x_GLF_uniform_float_values[7];
 } x_6;
 
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[4];
+  strided_arr_1 x_GLF_uniform_int_values[4];
 } x_10;
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.spvasm.expected.glsl
index 831d9b6..4d706b5 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.spvasm.expected.glsl
@@ -4,28 +4,28 @@
 precision mediump float;
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   int el;
 };
 
 struct buf1 {
-  tint_padded_array_element x_GLF_uniform_int_values[3];
+  strided_arr x_GLF_uniform_int_values[3];
 };
 
-struct tint_padded_array_element_1 {
+struct strided_arr_1 {
   float el;
 };
 
 struct buf0 {
-  tint_padded_array_element_1 x_GLF_uniform_float_values[2];
+  strided_arr_1 x_GLF_uniform_float_values[2];
 };
 
 layout(binding = 1) uniform buf1_1 {
-  tint_padded_array_element x_GLF_uniform_int_values[3];
+  strided_arr x_GLF_uniform_int_values[3];
 } x_6;
 
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element_1 x_GLF_uniform_float_values[2];
+  strided_arr_1 x_GLF_uniform_float_values[2];
 } x_10;
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.spvasm.expected.glsl
index 0f1b8ba..06e12be 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.spvasm.expected.glsl
@@ -16,28 +16,28 @@
 
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   int el;
 };
 
 struct buf1 {
-  tint_padded_array_element x_GLF_uniform_int_values[4];
+  strided_arr x_GLF_uniform_int_values[4];
 };
 
-struct tint_padded_array_element_1 {
+struct strided_arr_1 {
   float el;
 };
 
 struct buf0 {
-  tint_padded_array_element_1 x_GLF_uniform_float_values[3];
+  strided_arr_1 x_GLF_uniform_float_values[3];
 };
 
 layout(binding = 1) uniform buf1_1 {
-  tint_padded_array_element x_GLF_uniform_int_values[4];
+  strided_arr x_GLF_uniform_int_values[4];
 } x_8;
 
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element_1 x_GLF_uniform_float_values[3];
+  strided_arr_1 x_GLF_uniform_float_values[3];
 } x_10;
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.spvasm.expected.glsl
index bded584..51ebfc5 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.spvasm.expected.glsl
@@ -16,28 +16,28 @@
 
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   float el;
 };
 
 struct buf1 {
-  tint_padded_array_element x_GLF_uniform_float_values[4];
+  strided_arr x_GLF_uniform_float_values[4];
 };
 
-struct tint_padded_array_element_1 {
+struct strided_arr_1 {
   int el;
 };
 
 struct buf0 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[4];
+  strided_arr_1 x_GLF_uniform_int_values[4];
 };
 
 layout(binding = 1) uniform buf1_1 {
-  tint_padded_array_element x_GLF_uniform_float_values[4];
+  strided_arr x_GLF_uniform_float_values[4];
 } x_6;
 
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[4];
+  strided_arr_1 x_GLF_uniform_int_values[4];
 } x_10;
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.spvasm.expected.glsl
index b6862f6..962d394 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.spvasm.expected.glsl
@@ -4,16 +4,16 @@
 precision mediump float;
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   float el;
 };
 
 struct buf0 {
-  tint_padded_array_element x_GLF_uniform_float_values[2];
+  strided_arr x_GLF_uniform_float_values[2];
 };
 
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element x_GLF_uniform_float_values[2];
+  strided_arr x_GLF_uniform_float_values[2];
 } x_5;
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.glsl
index 116a3a2..cea0071 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.glsl
@@ -4,16 +4,16 @@
 precision mediump float;
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   int el;
 };
 
 struct buf0 {
-  tint_padded_array_element x_GLF_uniform_int_values[6];
+  strided_arr x_GLF_uniform_int_values[6];
 };
 
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element x_GLF_uniform_int_values[6];
+  strided_arr x_GLF_uniform_int_values[6];
 } x_6;
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.spvasm.expected.glsl
index 8c65410..b0e150c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.spvasm.expected.glsl
@@ -4,28 +4,28 @@
 precision mediump float;
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   float el;
 };
 
 struct buf0 {
-  tint_padded_array_element x_GLF_uniform_float_values[2];
+  strided_arr x_GLF_uniform_float_values[2];
 };
 
-struct tint_padded_array_element_1 {
+struct strided_arr_1 {
   int el;
 };
 
 struct buf1 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[3];
+  strided_arr_1 x_GLF_uniform_int_values[3];
 };
 
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element x_GLF_uniform_float_values[2];
+  strided_arr x_GLF_uniform_float_values[2];
 } x_6;
 
 layout(binding = 1) uniform buf1_1 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[3];
+  strided_arr_1 x_GLF_uniform_int_values[3];
 } x_11;
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.glsl
index d07d066..97f36d5 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.glsl
@@ -4,28 +4,28 @@
 precision mediump float;
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   float el;
 };
 
 struct buf1 {
-  tint_padded_array_element x_GLF_uniform_float_values[2];
+  strided_arr x_GLF_uniform_float_values[2];
 };
 
-struct tint_padded_array_element_1 {
+struct strided_arr_1 {
   int el;
 };
 
 struct buf0 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[4];
+  strided_arr_1 x_GLF_uniform_int_values[4];
 };
 
 layout(binding = 1) uniform buf1_1 {
-  tint_padded_array_element x_GLF_uniform_float_values[2];
+  strided_arr x_GLF_uniform_float_values[2];
 } x_7;
 
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[4];
+  strided_arr_1 x_GLF_uniform_int_values[4];
 } x_10;
 
 vec4 tint_symbol = vec4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.glsl
index 284ba47..8c470ea 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.glsl
@@ -4,16 +4,16 @@
 precision mediump float;
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   int el;
 };
 
 struct buf0 {
-  tint_padded_array_element x_GLF_uniform_int_values[2];
+  strided_arr x_GLF_uniform_int_values[2];
 };
 
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element x_GLF_uniform_int_values[2];
+  strided_arr x_GLF_uniform_int_values[2];
 } x_6;
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.spvasm.expected.glsl
index 793f1f9..79efa57 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.spvasm.expected.glsl
@@ -14,12 +14,12 @@
   uint one;
 };
 
-struct tint_padded_array_element {
+struct strided_arr {
   int el;
 };
 
 struct buf0 {
-  tint_padded_array_element x_GLF_uniform_int_values[1];
+  strided_arr x_GLF_uniform_int_values[1];
 };
 
 vec4 tint_symbol = vec4(0.0f, 0.0f, 0.0f, 0.0f);
@@ -29,7 +29,7 @@
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element x_GLF_uniform_int_values[1];
+  strided_arr x_GLF_uniform_int_values[1];
 } x_10;
 
 float func_() {
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.glsl
index cd6a9d6..7095408 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.glsl
@@ -8,20 +8,20 @@
   float one;
 };
 
-struct tint_padded_array_element {
+struct strided_arr {
   float el;
 };
 
 struct buf0 {
-  tint_padded_array_element x_GLF_uniform_float_values[1];
+  strided_arr x_GLF_uniform_float_values[1];
 };
 
-struct tint_padded_array_element_1 {
+struct strided_arr_1 {
   int el;
 };
 
 struct buf1 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[4];
+  strided_arr_1 x_GLF_uniform_int_values[4];
 };
 
 mat4x2 m = mat4x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
@@ -30,12 +30,12 @@
 } x_10;
 
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element x_GLF_uniform_float_values[1];
+  strided_arr x_GLF_uniform_float_values[1];
 } x_12;
 
 vec4 tint_symbol = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 layout(binding = 1) uniform buf1_1 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[4];
+  strided_arr_1 x_GLF_uniform_int_values[4];
 } x_16;
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.spvasm.expected.glsl
index 5c52cb4..7c17275 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.spvasm.expected.glsl
@@ -16,28 +16,28 @@
 
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   float el;
 };
 
 struct buf0 {
-  tint_padded_array_element x_GLF_uniform_float_values[4];
+  strided_arr x_GLF_uniform_float_values[4];
 };
 
-struct tint_padded_array_element_1 {
+struct strided_arr_1 {
   int el;
 };
 
 struct buf1 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[4];
+  strided_arr_1 x_GLF_uniform_int_values[4];
 };
 
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element x_GLF_uniform_float_values[4];
+  strided_arr x_GLF_uniform_float_values[4];
 } x_8;
 
 layout(binding = 1) uniform buf1_1 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[4];
+  strided_arr_1 x_GLF_uniform_int_values[4];
 } x_10;
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.glsl
index 99d1320..e436d2b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.glsl
@@ -4,17 +4,17 @@
 precision mediump float;
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   float el;
 };
 
 struct buf0 {
-  tint_padded_array_element x_GLF_uniform_float_values[2];
+  strided_arr x_GLF_uniform_float_values[2];
 };
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element x_GLF_uniform_float_values[2];
+  strided_arr x_GLF_uniform_float_values[2];
 } x_8;
 
 void main_1() {
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.glsl
index 393473c..c7dea64 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.glsl
@@ -4,16 +4,16 @@
 precision mediump float;
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   int el;
 };
 
 struct buf0 {
-  tint_padded_array_element x_GLF_uniform_int_values[4];
+  strided_arr x_GLF_uniform_int_values[4];
 };
 
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element x_GLF_uniform_int_values[4];
+  strided_arr x_GLF_uniform_int_values[4];
 } x_5;
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.spvasm.expected.glsl
index d425050..48bf4dc 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.spvasm.expected.glsl
@@ -4,30 +4,30 @@
 precision mediump float;
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   float el;
 };
 
 struct buf1 {
-  tint_padded_array_element x_GLF_uniform_float_values[2];
+  strided_arr x_GLF_uniform_float_values[2];
 };
 
-struct tint_padded_array_element_1 {
+struct strided_arr_1 {
   int el;
 };
 
 struct buf0 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[2];
+  strided_arr_1 x_GLF_uniform_int_values[2];
 };
 
 vec4 tint_symbol = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 layout(binding = 1) uniform buf1_1 {
-  tint_padded_array_element x_GLF_uniform_float_values[2];
+  strided_arr x_GLF_uniform_float_values[2];
 } x_7;
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[2];
+  strided_arr_1 x_GLF_uniform_int_values[2];
 } x_9;
 
 void main_1() {
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.spvasm.expected.glsl
index 8c0d134..440f95f 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.spvasm.expected.glsl
@@ -11,40 +11,40 @@
 
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   uint el;
 };
 
 struct buf0 {
-  tint_padded_array_element x_GLF_uniform_uint_values[1];
+  strided_arr x_GLF_uniform_uint_values[1];
 };
 
-struct tint_padded_array_element_1 {
+struct strided_arr_1 {
   int el;
 };
 
 struct buf1 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[2];
+  strided_arr_1 x_GLF_uniform_int_values[2];
 };
 
-struct tint_padded_array_element_2 {
+struct strided_arr_2 {
   float el;
 };
 
 struct buf2 {
-  tint_padded_array_element_2 x_GLF_uniform_float_values[3];
+  strided_arr_2 x_GLF_uniform_float_values[3];
 };
 
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element x_GLF_uniform_uint_values[1];
+  strided_arr x_GLF_uniform_uint_values[1];
 } x_6;
 
 layout(binding = 1) uniform buf1_1 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[2];
+  strided_arr_1 x_GLF_uniform_int_values[2];
 } x_8;
 
 layout(binding = 2) uniform buf2_1 {
-  tint_padded_array_element_2 x_GLF_uniform_float_values[3];
+  strided_arr_2 x_GLF_uniform_float_values[3];
 } x_10;
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.spvasm.expected.glsl
index d060ee9..005362d 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.spvasm.expected.glsl
@@ -4,34 +4,34 @@
 precision mediump float;
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   float el;
 };
 
 struct buf1 {
-  tint_padded_array_element x_GLF_uniform_float_values[3];
+  strided_arr x_GLF_uniform_float_values[3];
 };
 
-struct tint_padded_array_element_1 {
+struct strided_arr_1 {
   int el;
 };
 
 struct buf0 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[4];
+  strided_arr_1 x_GLF_uniform_int_values[4];
 };
 
 layout(binding = 1) uniform buf1_1 {
-  tint_padded_array_element x_GLF_uniform_float_values[3];
+  strided_arr x_GLF_uniform_float_values[3];
 } x_6;
 
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[4];
+  strided_arr_1 x_GLF_uniform_int_values[4];
 } x_8;
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 void main_1() {
   mat4x3 m43 = mat4x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
-  tint_padded_array_element sums[3] = tint_padded_array_element[3](tint_padded_array_element(0.0f), tint_padded_array_element(0.0f), tint_padded_array_element(0.0f));
+  strided_arr sums[3] = strided_arr[3](strided_arr(0.0f), strided_arr(0.0f), strided_arr(0.0f));
   int i = 0;
   int a = 0;
   int x_67_phi = 0;
@@ -45,8 +45,11 @@
   float x_58 = x_6.x_GLF_uniform_float_values[0].el;
   float x_60 = x_6.x_GLF_uniform_float_values[0].el;
   float x_62 = x_6.x_GLF_uniform_float_values[0].el;
-  tint_padded_array_element tint_symbol_1[3] = tint_padded_array_element[3](tint_padded_array_element(x_58), tint_padded_array_element(x_60), tint_padded_array_element(x_62));
-  sums = tint_symbol_1;
+  strided_arr tint_symbol_1 = strided_arr(x_58);
+  strided_arr tint_symbol_2 = strided_arr(x_60);
+  strided_arr tint_symbol_3 = strided_arr(x_62);
+  strided_arr tint_symbol_4[3] = strided_arr[3](tint_symbol_1, tint_symbol_2, tint_symbol_3);
+  sums = tint_symbol_4;
   int x_65 = x_8.x_GLF_uniform_int_values[0].el;
   i = x_65;
   x_67_phi = x_65;
@@ -102,8 +105,8 @@
 
 main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_5 = main_out(x_GLF_color);
+  return tint_symbol_5;
 }
 
 void main() {
@@ -112,9 +115,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:74: '[' :  matrix index out of range '4'
-ERROR: 0:74: '=' :  cannot convert from ' temp mediump 3-component vector of float' to ' temp mediump float'
-ERROR: 0:74: '' : compilation terminated 
+ERROR: 0:77: '[' :  matrix index out of range '4'
+ERROR: 0:77: '=' :  cannot convert from ' temp mediump 3-component vector of float' to ' temp mediump float'
+ERROR: 0:77: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.glsl
index f3909fa..bb41dfa 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.glsl
@@ -4,28 +4,28 @@
 precision mediump float;
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   int el;
 };
 
 struct buf1 {
-  tint_padded_array_element x_GLF_uniform_int_values[4];
+  strided_arr x_GLF_uniform_int_values[4];
 };
 
-struct tint_padded_array_element_1 {
+struct strided_arr_1 {
   float el;
 };
 
 struct buf0 {
-  tint_padded_array_element_1 x_GLF_uniform_float_values[1];
+  strided_arr_1 x_GLF_uniform_float_values[1];
 };
 
 layout(binding = 1) uniform buf1_1 {
-  tint_padded_array_element x_GLF_uniform_int_values[4];
+  strided_arr x_GLF_uniform_int_values[4];
 } x_6;
 
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element_1 x_GLF_uniform_float_values[1];
+  strided_arr_1 x_GLF_uniform_float_values[1];
 } x_10;
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.spvasm.expected.glsl
index a78e4c1..eda3b9a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.spvasm.expected.glsl
@@ -4,28 +4,28 @@
 precision mediump float;
 
 layout(location = 0) out vec4 x_GLF_color_1_1;
-struct tint_padded_array_element {
+struct strided_arr {
   float el;
 };
 
 struct buf1 {
-  tint_padded_array_element x_GLF_uniform_float_values[2];
+  strided_arr x_GLF_uniform_float_values[2];
 };
 
-struct tint_padded_array_element_1 {
+struct strided_arr_1 {
   int el;
 };
 
 struct buf0 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[3];
+  strided_arr_1 x_GLF_uniform_int_values[3];
 };
 
 layout(binding = 1) uniform buf1_1 {
-  tint_padded_array_element x_GLF_uniform_float_values[2];
+  strided_arr x_GLF_uniform_float_values[2];
 } x_6;
 
 layout(binding = 0) uniform buf0_1 {
-  tint_padded_array_element_1 x_GLF_uniform_int_values[3];
+  strided_arr_1 x_GLF_uniform_int_values[3];
 } x_8;
 
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/two-for-loops-with-barrier-function/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/two-for-loops-with-barrier-function/0-opt.spvasm.expected.glsl
index 5c9dc75..2c0ca1c 100644
--- a/test/vk-gl-cts/graphicsfuzz/two-for-loops-with-barrier-function/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/two-for-loops-with-barrier-function/0-opt.spvasm.expected.glsl
@@ -16,7 +16,7 @@
   vec2 injectionSwitch;
 } x_9;
 
-layout(binding = 0) buffer doesNotMatter_1 {
+layout(binding = 0, std430) buffer doesNotMatter_1 {
   uint x_compute_data[];
 } x_12;
 void main_1() {
diff --git a/test/vk-gl-cts/graphicsfuzz/two-for-loops-with-barrier-function/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/two-for-loops-with-barrier-function/0-opt.wgsl.expected.glsl
index ca234df..e81d36c 100644
--- a/test/vk-gl-cts/graphicsfuzz/two-for-loops-with-barrier-function/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/two-for-loops-with-barrier-function/0-opt.wgsl.expected.glsl
@@ -20,7 +20,7 @@
   vec2 injectionSwitch;
 } x_9;
 
-layout(binding = 0) buffer doesNotMatter_1 {
+layout(binding = 0, std430) buffer doesNotMatter_1 {
   uint x_compute_data[];
 } x_12;
 void main_1() {
diff --git a/test/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.spvasm.expected.glsl
index db14a35..97fd719 100644
--- a/test/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.spvasm.expected.glsl
@@ -7,7 +7,7 @@
   float x_compute_data[];
 };
 
-layout(binding = 0) buffer doesNotMatter_1 {
+layout(binding = 0, std430) buffer doesNotMatter_1 {
   float x_compute_data[];
 } x_9;
 float nb_mod_() {
diff --git a/test/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.wgsl.expected.glsl
index e78effd..ae1bdf6 100644
--- a/test/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.wgsl.expected.glsl
@@ -11,7 +11,7 @@
   float x_compute_data[];
 };
 
-layout(binding = 0) buffer doesNotMatter_1 {
+layout(binding = 0, std430) buffer doesNotMatter_1 {
   float x_compute_data[];
 } x_9;
 float nb_mod_() {
diff --git a/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.spvasm.expected.glsl
index b9afdab..0e215f4 100644
--- a/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.spvasm.expected.glsl
@@ -24,7 +24,7 @@
   vec2 resolution;
 } x_13;
 
-layout(binding = 0) buffer doesNotMatter_1 {
+layout(binding = 0, std430) buffer doesNotMatter_1 {
   int x_compute_data[];
 } x_15;
 void main_1() {
diff --git a/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.wgsl.expected.glsl
index f741d59..397b67a 100644
--- a/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.wgsl.expected.glsl
@@ -28,7 +28,7 @@
   vec2 resolution;
 } x_13;
 
-layout(binding = 0) buffer doesNotMatter_1 {
+layout(binding = 0, std430) buffer doesNotMatter_1 {
   int x_compute_data[];
 } x_15;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.spvasm.expected.glsl
index e2366a2..e32bbf2 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.spvasm.expected.glsl
@@ -11,10 +11,10 @@
   uint values[];
 };
 
-layout(binding = 1) buffer Buf1_1 {
+layout(binding = 1, std430) buffer Buf1_1 {
   int result;
 } x_4;
-layout(binding = 0) buffer Buf0_1 {
+layout(binding = 0, std430) buffer Buf0_1 {
   uint values[];
 } x_7;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.wgsl.expected.glsl
index a213db5..73d39e2 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.wgsl.expected.glsl
@@ -15,10 +15,10 @@
   uint values[];
 };
 
-layout(binding = 1) buffer Buf1_1 {
+layout(binding = 1, std430) buffer Buf1_1 {
   int result;
 } x_4;
-layout(binding = 0) buffer Buf0_1 {
+layout(binding = 0, std430) buffer Buf0_1 {
   uint values[];
 } x_7;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.spvasm.expected.glsl
index d9d2c64..1f8e36b 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.spvasm.expected.glsl
@@ -8,13 +8,13 @@
 };
 
 uvec3 x_2 = uvec3(0u, 0u, 0u);
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   uint field0[];
 } x_5;
-layout(binding = 1) buffer S_2 {
+layout(binding = 1, std430) buffer S_2 {
   uint field0[];
 } x_6;
-layout(binding = 2) buffer S_3 {
+layout(binding = 2, std430) buffer S_3 {
   uint field0[];
 } x_7;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.wgsl.expected.glsl
index 68344d4..40fbe8b 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.wgsl.expected.glsl
@@ -12,13 +12,13 @@
 };
 
 uvec3 x_2 = uvec3(0u, 0u, 0u);
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   uint field0[];
 } x_5;
-layout(binding = 1) buffer S_2 {
+layout(binding = 1, std430) buffer S_2 {
   uint field0[];
 } x_6;
-layout(binding = 2) buffer S_3 {
+layout(binding = 2, std430) buffer S_3 {
   uint field0[];
 } x_7;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.spvasm.expected.glsl
index 9fde01f..4bb64eb 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.spvasm.expected.glsl
@@ -8,13 +8,13 @@
 };
 
 uvec3 x_2 = uvec3(0u, 0u, 0u);
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   uint field0[];
 } x_5;
-layout(binding = 1) buffer S_2 {
+layout(binding = 1, std430) buffer S_2 {
   uint field0[];
 } x_6;
-layout(binding = 2) buffer S_3 {
+layout(binding = 2, std430) buffer S_3 {
   uint field0[];
 } x_7;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.wgsl.expected.glsl
index 926a4eb..e1eeb63 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.wgsl.expected.glsl
@@ -12,13 +12,13 @@
 };
 
 uvec3 x_2 = uvec3(0u, 0u, 0u);
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   uint field0[];
 } x_5;
-layout(binding = 1) buffer S_2 {
+layout(binding = 1, std430) buffer S_2 {
   uint field0[];
 } x_6;
-layout(binding = 2) buffer S_3 {
+layout(binding = 2, std430) buffer S_3 {
   uint field0[];
 } x_7;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.spvasm.expected.glsl
index 13404d0..5473086 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.spvasm.expected.glsl
@@ -8,13 +8,13 @@
 };
 
 uvec3 x_2 = uvec3(0u, 0u, 0u);
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   uint field0[];
 } x_5;
-layout(binding = 1) buffer S_2 {
+layout(binding = 1, std430) buffer S_2 {
   uint field0[];
 } x_6;
-layout(binding = 2) buffer S_3 {
+layout(binding = 2, std430) buffer S_3 {
   uint field0[];
 } x_7;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.wgsl.expected.glsl
index 84ad124..6745e29 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.wgsl.expected.glsl
@@ -12,13 +12,13 @@
 };
 
 uvec3 x_2 = uvec3(0u, 0u, 0u);
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   uint field0[];
 } x_5;
-layout(binding = 1) buffer S_2 {
+layout(binding = 1, std430) buffer S_2 {
   uint field0[];
 } x_6;
-layout(binding = 2) buffer S_3 {
+layout(binding = 2, std430) buffer S_3 {
   uint field0[];
 } x_7;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.spvasm.expected.glsl
index 18b1f2a..f660afa 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.spvasm.expected.glsl
@@ -8,13 +8,13 @@
 };
 
 uvec3 x_2 = uvec3(0u, 0u, 0u);
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   uint field0[];
 } x_5;
-layout(binding = 1) buffer S_2 {
+layout(binding = 1, std430) buffer S_2 {
   uint field0[];
 } x_6;
-layout(binding = 2) buffer S_3 {
+layout(binding = 2, std430) buffer S_3 {
   uint field0[];
 } x_7;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.wgsl.expected.glsl
index 5874bf2..2bd3fa2 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.wgsl.expected.glsl
@@ -12,13 +12,13 @@
 };
 
 uvec3 x_2 = uvec3(0u, 0u, 0u);
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   uint field0[];
 } x_5;
-layout(binding = 1) buffer S_2 {
+layout(binding = 1, std430) buffer S_2 {
   uint field0[];
 } x_6;
-layout(binding = 2) buffer S_3 {
+layout(binding = 2, std430) buffer S_3 {
   uint field0[];
 } x_7;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.spvasm.expected.glsl
index 251a504..475cb67 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.spvasm.expected.glsl
@@ -8,16 +8,16 @@
 };
 
 uvec3 x_3 = uvec3(0u, 0u, 0u);
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   int field0[];
 } x_6;
-layout(binding = 1) buffer S_2 {
+layout(binding = 1, std430) buffer S_2 {
   int field0[];
 } x_7;
-layout(binding = 2) buffer S_3 {
+layout(binding = 2, std430) buffer S_3 {
   int field0[];
 } x_8;
-layout(binding = 3) buffer S_4 {
+layout(binding = 3, std430) buffer S_4 {
   int field0[];
 } x_9;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.wgsl.expected.glsl
index a47b09b..74eb7fc 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.wgsl.expected.glsl
@@ -12,16 +12,16 @@
 };
 
 uvec3 x_3 = uvec3(0u, 0u, 0u);
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   int field0[];
 } x_6;
-layout(binding = 1) buffer S_2 {
+layout(binding = 1, std430) buffer S_2 {
   int field0[];
 } x_7;
-layout(binding = 2) buffer S_3 {
+layout(binding = 2, std430) buffer S_3 {
   int field0[];
 } x_8;
-layout(binding = 3) buffer S_4 {
+layout(binding = 3, std430) buffer S_4 {
   int field0[];
 } x_9;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.spvasm.expected.glsl
index c98c63f..860700b 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.spvasm.expected.glsl
@@ -8,10 +8,10 @@
 };
 
 uvec3 x_3 = uvec3(0u, 0u, 0u);
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   uint field0[];
 } x_6;
-layout(binding = 1) buffer S_2 {
+layout(binding = 1, std430) buffer S_2 {
   uint field0[];
 } x_7;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.wgsl.expected.glsl
index e0845f7..78937e9 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.wgsl.expected.glsl
@@ -12,10 +12,10 @@
 };
 
 uvec3 x_3 = uvec3(0u, 0u, 0u);
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   uint field0[];
 } x_6;
-layout(binding = 1) buffer S_2 {
+layout(binding = 1, std430) buffer S_2 {
   uint field0[];
 } x_7;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.spvasm.expected.glsl
index cd581c8..4b2608e 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.spvasm.expected.glsl
@@ -8,16 +8,16 @@
 };
 
 uvec3 x_3 = uvec3(0u, 0u, 0u);
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   uint field0[];
 } x_6;
-layout(binding = 1) buffer S_2 {
+layout(binding = 1, std430) buffer S_2 {
   uint field0[];
 } x_7;
-layout(binding = 2) buffer S_3 {
+layout(binding = 2, std430) buffer S_3 {
   uint field0[];
 } x_8;
-layout(binding = 3) buffer S_4 {
+layout(binding = 3, std430) buffer S_4 {
   uint field0[];
 } x_9;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.wgsl.expected.glsl
index e156568..487d319 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.wgsl.expected.glsl
@@ -12,16 +12,16 @@
 };
 
 uvec3 x_3 = uvec3(0u, 0u, 0u);
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   uint field0[];
 } x_6;
-layout(binding = 1) buffer S_2 {
+layout(binding = 1, std430) buffer S_2 {
   uint field0[];
 } x_7;
-layout(binding = 2) buffer S_3 {
+layout(binding = 2, std430) buffer S_3 {
   uint field0[];
 } x_8;
-layout(binding = 3) buffer S_4 {
+layout(binding = 3, std430) buffer S_4 {
   uint field0[];
 } x_9;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.spvasm.expected.glsl
index 52e29ed..31a020a 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.spvasm.expected.glsl
@@ -8,13 +8,13 @@
 };
 
 uvec3 x_3 = uvec3(0u, 0u, 0u);
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   uint field0[];
 } x_6;
-layout(binding = 1) buffer S_2 {
+layout(binding = 1, std430) buffer S_2 {
   uint field0[];
 } x_7;
-layout(binding = 2) buffer S_3 {
+layout(binding = 2, std430) buffer S_3 {
   uint field0[];
 } x_8;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.wgsl.expected.glsl
index 16cdc9c..42fdf93 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.wgsl.expected.glsl
@@ -12,13 +12,13 @@
 };
 
 uvec3 x_3 = uvec3(0u, 0u, 0u);
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   uint field0[];
 } x_6;
-layout(binding = 1) buffer S_2 {
+layout(binding = 1, std430) buffer S_2 {
   uint field0[];
 } x_7;
-layout(binding = 2) buffer S_3 {
+layout(binding = 2, std430) buffer S_3 {
   uint field0[];
 } x_8;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.spvasm.expected.glsl
index 57bf5a7..73fef33 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.spvasm.expected.glsl
@@ -8,13 +8,13 @@
 };
 
 uvec3 x_3 = uvec3(0u, 0u, 0u);
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   uint field0[];
 } x_6;
-layout(binding = 1) buffer S_2 {
+layout(binding = 1, std430) buffer S_2 {
   uint field0[];
 } x_7;
-layout(binding = 2) buffer S_3 {
+layout(binding = 2, std430) buffer S_3 {
   uint field0[];
 } x_8;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.wgsl.expected.glsl
index 40efa37..4d329dc 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.wgsl.expected.glsl
@@ -12,13 +12,13 @@
 };
 
 uvec3 x_3 = uvec3(0u, 0u, 0u);
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   uint field0[];
 } x_6;
-layout(binding = 1) buffer S_2 {
+layout(binding = 1, std430) buffer S_2 {
   uint field0[];
 } x_7;
-layout(binding = 2) buffer S_3 {
+layout(binding = 2, std430) buffer S_3 {
   uint field0[];
 } x_8;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.spvasm.expected.glsl
index da8852d..35a67d64 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.spvasm.expected.glsl
@@ -8,13 +8,13 @@
 };
 
 uvec3 x_2 = uvec3(0u, 0u, 0u);
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   uint field0[];
 } x_5;
-layout(binding = 1) buffer S_2 {
+layout(binding = 1, std430) buffer S_2 {
   uint field0[];
 } x_6;
-layout(binding = 2) buffer S_3 {
+layout(binding = 2, std430) buffer S_3 {
   uint field0[];
 } x_7;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.wgsl.expected.glsl
index ad5194b..e623139 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.wgsl.expected.glsl
@@ -12,13 +12,13 @@
 };
 
 uvec3 x_2 = uvec3(0u, 0u, 0u);
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   uint field0[];
 } x_5;
-layout(binding = 1) buffer S_2 {
+layout(binding = 1, std430) buffer S_2 {
   uint field0[];
 } x_6;
-layout(binding = 2) buffer S_3 {
+layout(binding = 2, std430) buffer S_3 {
   uint field0[];
 } x_7;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.spvasm.expected.glsl
index 6b2368e..a7c893f 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.spvasm.expected.glsl
@@ -8,10 +8,10 @@
 };
 
 uvec3 x_2 = uvec3(0u, 0u, 0u);
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   uint field0[];
 } x_5;
-layout(binding = 1) buffer S_2 {
+layout(binding = 1, std430) buffer S_2 {
   uint field0[];
 } x_6;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.wgsl.expected.glsl
index 6cb02de..bec61b4 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.wgsl.expected.glsl
@@ -12,10 +12,10 @@
 };
 
 uvec3 x_2 = uvec3(0u, 0u, 0u);
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   uint field0[];
 } x_5;
-layout(binding = 1) buffer S_2 {
+layout(binding = 1, std430) buffer S_2 {
   uint field0[];
 } x_6;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.spvasm.expected.glsl
index 14953d8..054a5cc 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.spvasm.expected.glsl
@@ -12,7 +12,7 @@
 vec4 x_2 = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 int x_3 = 0;
 int x_4 = 0;
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   int field0[];
 } x_5;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.wgsl.expected.glsl
index b523e0d..5fbe899 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.wgsl.expected.glsl
@@ -16,7 +16,7 @@
 vec4 x_2 = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 int x_3 = 0;
 int x_4 = 0;
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   int field0[];
 } x_5;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.spvasm.expected.glsl
index 46fb7d6..d1e6534 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.spvasm.expected.glsl
@@ -12,7 +12,7 @@
 vec4 x_2 = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 int x_3 = 0;
 int x_4 = 0;
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   int field0[];
 } x_5;
 void main_1() {
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.wgsl.expected.glsl
index e357ce5..4bd98da 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.wgsl.expected.glsl
@@ -16,7 +16,7 @@
 vec4 x_2 = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 int x_3 = 0;
 int x_4 = 0;
-layout(binding = 0) buffer S_1 {
+layout(binding = 0, std430) buffer S_1 {
   int field0[];
 } x_5;
 void main_1() {
