diff --git a/src/tint/lang/msl/writer/printer/discard_test.cc b/src/tint/lang/msl/writer/printer/discard_test.cc
index 954118a..79a7131 100644
--- a/src/tint/lang/msl/writer/printer/discard_test.cc
+++ b/src/tint/lang/msl/writer/printer/discard_test.cc
@@ -61,7 +61,7 @@
 }
 fragment void frag_main() {
   thread bool continue_execution = true;
-  tint_module_vars_struct const tint_module_vars = {.continue_execution=(&continue_execution)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.continue_execution=(&continue_execution)};
   foo(tint_module_vars);
   if (!((*tint_module_vars.continue_execution))) {
     discard_fragment();
diff --git a/src/tint/lang/msl/writer/printer/printer.cc b/src/tint/lang/msl/writer/printer/printer.cc
index bfc968e..7c58cd4 100644
--- a/src/tint/lang/msl/writer/printer/printer.cc
+++ b/src/tint/lang/msl/writer/printer/printer.cc
@@ -1002,6 +1002,8 @@
                 out << "}";
             },
             [&](const core::type::Struct* struct_ty) {
+                EmitStructType(struct_ty);
+                out << struct_ty->Name().Name();
                 out << "{";
                 size_t i = 0;
                 for (auto* arg : c->Args()) {
diff --git a/src/tint/lang/msl/writer/printer/var_test.cc b/src/tint/lang/msl/writer/printer/var_test.cc
index 2cc2671..b3e141a 100644
--- a/src/tint/lang/msl/writer/printer/var_test.cc
+++ b/src/tint/lang/msl/writer/printer/var_test.cc
@@ -276,7 +276,7 @@
 }
 fragment void frag() {
   thread float v = 0.0f;
-  tint_module_vars_struct const tint_module_vars = {.v=(&v)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.v=(&v)};
   foo(tint_module_vars);
 }
 )");
diff --git a/test/tint/access/let/matrix.wgsl.expected.ir.msl b/test/tint/access/let/matrix.wgsl.expected.ir.msl
index 78f095c..7ddf204 100644
--- a/test/tint/access/let/matrix.wgsl.expected.ir.msl
+++ b/test/tint/access/let/matrix.wgsl.expected.ir.msl
@@ -5,7 +5,7 @@
 };
 
 kernel void tint_symbol(device float* s [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s};
   float3x3 const m = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
   float3 const v = m[1];
   float const f = v[1];
diff --git a/test/tint/access/let/vector.wgsl.expected.ir.msl b/test/tint/access/let/vector.wgsl.expected.ir.msl
index f989433..d9bdeee 100644
--- a/test/tint/access/let/vector.wgsl.expected.ir.msl
+++ b/test/tint/access/let/vector.wgsl.expected.ir.msl
@@ -5,7 +5,7 @@
 };
 
 kernel void tint_symbol(device float3* s [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s};
   float3 const v = float3(1.0f, 2.0f, 3.0f);
   float const scalar = v[1u];
   float2 const swizzle2 = v.xz;
diff --git a/test/tint/access/var/matrix.wgsl.expected.ir.msl b/test/tint/access/var/matrix.wgsl.expected.ir.msl
index 523b128..0110f25 100644
--- a/test/tint/access/var/matrix.wgsl.expected.ir.msl
+++ b/test/tint/access/var/matrix.wgsl.expected.ir.msl
@@ -5,7 +5,7 @@
 };
 
 kernel void tint_symbol(device float* s [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s};
   float3x3 m = float3x3(0.0f);
   float3 const v = m[1];
   float const f = v[1];
diff --git a/test/tint/access/var/vector.wgsl.expected.ir.msl b/test/tint/access/var/vector.wgsl.expected.ir.msl
index 810771b..048db9f 100644
--- a/test/tint/access/var/vector.wgsl.expected.ir.msl
+++ b/test/tint/access/var/vector.wgsl.expected.ir.msl
@@ -5,7 +5,7 @@
 };
 
 kernel void tint_symbol(device float3* s [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s};
   float3 v = 0.0f;
   float const scalar = v[1u];
   float2 const swizzle2 = v.xz;
diff --git a/test/tint/array/assign_to_subexpr.wgsl.expected.ir.msl b/test/tint/array/assign_to_subexpr.wgsl.expected.ir.msl
index ca8e408..471068b 100644
--- a/test/tint/array/assign_to_subexpr.wgsl.expected.ir.msl
+++ b/test/tint/array/assign_to_subexpr.wgsl.expected.ir.msl
@@ -35,6 +35,6 @@
   return (((*dst_ptr)[0] + (*dst_struct_ptr).arr[0]) + (*dst_array_ptr)[0][0]);
 }
 kernel void tint_symbol(device int* s [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s};
   (*tint_module_vars.s) = foo();
 }
diff --git a/test/tint/array/function_parameter.wgsl.expected.ir.msl b/test/tint/array/function_parameter.wgsl.expected.ir.msl
index a150de7..fbab9f4 100644
--- a/test/tint/array/function_parameter.wgsl.expected.ir.msl
+++ b/test/tint/array/function_parameter.wgsl.expected.ir.msl
@@ -26,7 +26,7 @@
   return a[1][2][3];
 }
 kernel void tint_symbol(device float* s [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s};
   tint_array<float, 4> const a1 = tint_array<float, 4>{};
   tint_array<tint_array<float, 4>, 3> const a2 = tint_array<tint_array<float, 4>, 3>{};
   tint_array<tint_array<tint_array<float, 4>, 3>, 2> const a3 = tint_array<tint_array<tint_array<float, 4>, 3>, 2>{};
diff --git a/test/tint/array/function_return_type.wgsl.expected.ir.msl b/test/tint/array/function_return_type.wgsl.expected.ir.msl
index 16f9e96..9e92db5 100644
--- a/test/tint/array/function_return_type.wgsl.expected.ir.msl
+++ b/test/tint/array/function_return_type.wgsl.expected.ir.msl
@@ -29,7 +29,7 @@
   return tint_array<tint_array<tint_array<float, 4>, 3>, 2>{v_2, f2()};
 }
 kernel void tint_symbol(device float* s [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s};
   tint_array<float, 4> const a1 = f1();
   tint_array<tint_array<float, 4>, 3> const a2 = f2();
   tint_array<tint_array<tint_array<float, 4>, 3>, 2> const a3 = f3();
diff --git a/test/tint/array/size.wgsl.expected.ir.msl b/test/tint/array/size.wgsl.expected.ir.msl
index 3474538..7d0296e 100644
--- a/test/tint/array/size.wgsl.expected.ir.msl
+++ b/test/tint/array/size.wgsl.expected.ir.msl
@@ -17,7 +17,7 @@
 
 
 fragment void tint_symbol(device float* s [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s};
   tint_array<float, 4> signed_literal = {};
   tint_array<float, 4> unsigned_literal = {};
   tint_array<float, 4> signed_constant = {};
diff --git a/test/tint/array/type_initializer.wgsl.expected.ir.msl b/test/tint/array/type_initializer.wgsl.expected.ir.msl
index a590be4..7c0c9cc 100644
--- a/test/tint/array/type_initializer.wgsl.expected.ir.msl
+++ b/test/tint/array/type_initializer.wgsl.expected.ir.msl
@@ -17,7 +17,7 @@
 
 
 kernel void tint_symbol(device int* s [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s};
   int const x = 42;
   tint_array<int, 4> const empty = tint_array<int, 4>{};
   tint_array<int, 4> const nonempty = tint_array<int, 4>{1, 2, 3, 4};
diff --git a/test/tint/buffer/storage/types/array4_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/array4_f16.wgsl.expected.ir.msl
index 6ba9099..d34f267 100644
--- a/test/tint/buffer/storage/types/array4_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/array4_f16.wgsl.expected.ir.msl
@@ -18,6 +18,6 @@
 };
 
 kernel void tint_symbol(const device tint_array<half, 4>* in [[buffer(0)]], device tint_array<half, 4>* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/array4_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/array4_f32.wgsl.expected.ir.msl
index 707a37b..e776fb1 100644
--- a/test/tint/buffer/storage/types/array4_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/array4_f32.wgsl.expected.ir.msl
@@ -18,6 +18,6 @@
 };
 
 kernel void tint_symbol(const device tint_array<float, 4>* in [[buffer(0)]], device tint_array<float, 4>* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/f16.wgsl.expected.ir.msl
index 7b4b10b..117bb6d 100644
--- a/test/tint/buffer/storage/types/f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/f16.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device half* in [[buffer(0)]], device half* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/f32.wgsl.expected.ir.msl
index 47b2078..da38f6f 100644
--- a/test/tint/buffer/storage/types/f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/f32.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device float* in [[buffer(0)]], device float* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/i32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/i32.wgsl.expected.ir.msl
index edc0ef0..e2e30f9 100644
--- a/test/tint/buffer/storage/types/i32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/i32.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device int* in [[buffer(0)]], device int* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/mat2x2_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat2x2_f16.wgsl.expected.ir.msl
index 824b701..a9d9baa 100644
--- a/test/tint/buffer/storage/types/mat2x2_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat2x2_f16.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device half2x2* in [[buffer(0)]], device half2x2* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/mat2x2_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat2x2_f32.wgsl.expected.ir.msl
index e0724a7..958d79b 100644
--- a/test/tint/buffer/storage/types/mat2x2_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat2x2_f32.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device float2x2* in [[buffer(0)]], device float2x2* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/mat2x3_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat2x3_f16.wgsl.expected.ir.msl
index 412ece7..507ddead 100644
--- a/test/tint/buffer/storage/types/mat2x3_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat2x3_f16.wgsl.expected.ir.msl
@@ -10,6 +10,6 @@
   (*target)[1u] = value_param[1u];
 }
 kernel void tint_symbol(const device half2x3* in [[buffer(0)]], device half2x3* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.in));
 }
diff --git a/test/tint/buffer/storage/types/mat2x3_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat2x3_f32.wgsl.expected.ir.msl
index 456f0fd..30a2504 100644
--- a/test/tint/buffer/storage/types/mat2x3_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat2x3_f32.wgsl.expected.ir.msl
@@ -10,6 +10,6 @@
   (*target)[1u] = value_param[1u];
 }
 kernel void tint_symbol(const device float2x3* in [[buffer(0)]], device float2x3* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.in));
 }
diff --git a/test/tint/buffer/storage/types/mat2x4_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat2x4_f16.wgsl.expected.ir.msl
index 6a84e3e..a40d290 100644
--- a/test/tint/buffer/storage/types/mat2x4_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat2x4_f16.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device half2x4* in [[buffer(0)]], device half2x4* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/mat2x4_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat2x4_f32.wgsl.expected.ir.msl
index 34f93d0..363a695 100644
--- a/test/tint/buffer/storage/types/mat2x4_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat2x4_f32.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device float2x4* in [[buffer(0)]], device float2x4* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/mat3x2_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat3x2_f16.wgsl.expected.ir.msl
index 19c106b..d3c7461 100644
--- a/test/tint/buffer/storage/types/mat3x2_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat3x2_f16.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device half3x2* in [[buffer(0)]], device half3x2* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/mat3x2_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat3x2_f32.wgsl.expected.ir.msl
index 85f9043..a1056c8 100644
--- a/test/tint/buffer/storage/types/mat3x2_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat3x2_f32.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device float3x2* in [[buffer(0)]], device float3x2* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/mat3x3_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat3x3_f16.wgsl.expected.ir.msl
index 98f4a8f..051fd71 100644
--- a/test/tint/buffer/storage/types/mat3x3_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat3x3_f16.wgsl.expected.ir.msl
@@ -11,6 +11,6 @@
   (*target)[2u] = value_param[2u];
 }
 kernel void tint_symbol(const device half3x3* in [[buffer(0)]], device half3x3* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.in));
 }
diff --git a/test/tint/buffer/storage/types/mat3x3_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat3x3_f32.wgsl.expected.ir.msl
index b3e18bc..fa16f45 100644
--- a/test/tint/buffer/storage/types/mat3x3_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat3x3_f32.wgsl.expected.ir.msl
@@ -11,6 +11,6 @@
   (*target)[2u] = value_param[2u];
 }
 kernel void tint_symbol(const device float3x3* in [[buffer(0)]], device float3x3* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.in));
 }
diff --git a/test/tint/buffer/storage/types/mat3x4_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat3x4_f16.wgsl.expected.ir.msl
index 0a096bd..95e7825 100644
--- a/test/tint/buffer/storage/types/mat3x4_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat3x4_f16.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device half3x4* in [[buffer(0)]], device half3x4* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/mat3x4_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat3x4_f32.wgsl.expected.ir.msl
index 05d12e3..eef01c3 100644
--- a/test/tint/buffer/storage/types/mat3x4_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat3x4_f32.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device float3x4* in [[buffer(0)]], device float3x4* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/mat4x2_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat4x2_f16.wgsl.expected.ir.msl
index dbefc25..b040ef5 100644
--- a/test/tint/buffer/storage/types/mat4x2_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat4x2_f16.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device half4x2* in [[buffer(0)]], device half4x2* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/mat4x2_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat4x2_f32.wgsl.expected.ir.msl
index b756c9e..357aacc 100644
--- a/test/tint/buffer/storage/types/mat4x2_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat4x2_f32.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device float4x2* in [[buffer(0)]], device float4x2* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/mat4x3_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat4x3_f16.wgsl.expected.ir.msl
index 231d79a..c222f1a 100644
--- a/test/tint/buffer/storage/types/mat4x3_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat4x3_f16.wgsl.expected.ir.msl
@@ -12,6 +12,6 @@
   (*target)[3u] = value_param[3u];
 }
 kernel void tint_symbol(const device half4x3* in [[buffer(0)]], device half4x3* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.in));
 }
diff --git a/test/tint/buffer/storage/types/mat4x3_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat4x3_f32.wgsl.expected.ir.msl
index b048da1..d4ae9f6 100644
--- a/test/tint/buffer/storage/types/mat4x3_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat4x3_f32.wgsl.expected.ir.msl
@@ -12,6 +12,6 @@
   (*target)[3u] = value_param[3u];
 }
 kernel void tint_symbol(const device float4x3* in [[buffer(0)]], device float4x3* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.in));
 }
diff --git a/test/tint/buffer/storage/types/mat4x4_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat4x4_f16.wgsl.expected.ir.msl
index c513d85..9b45119 100644
--- a/test/tint/buffer/storage/types/mat4x4_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat4x4_f16.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device half4x4* in [[buffer(0)]], device half4x4* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/mat4x4_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat4x4_f32.wgsl.expected.ir.msl
index c916802..c9d56f8 100644
--- a/test/tint/buffer/storage/types/mat4x4_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat4x4_f32.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device float4x4* in [[buffer(0)]], device float4x4* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/runtime_array_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/runtime_array_f16.wgsl.expected.ir.msl
index 1e62fb1..257fdd50 100644
--- a/test/tint/buffer/storage/types/runtime_array_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/runtime_array_f16.wgsl.expected.ir.msl
@@ -18,6 +18,6 @@
 };
 
 kernel void tint_symbol(const device tint_array<half, 1>* in [[buffer(0)]], device tint_array<half, 1>* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out)[0] = (*tint_module_vars.in)[0];
 }
diff --git a/test/tint/buffer/storage/types/runtime_array_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/runtime_array_f32.wgsl.expected.ir.msl
index 854ef60..5c9d579 100644
--- a/test/tint/buffer/storage/types/runtime_array_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/runtime_array_f32.wgsl.expected.ir.msl
@@ -18,6 +18,6 @@
 };
 
 kernel void tint_symbol(const device tint_array<float, 1>* in [[buffer(0)]], device tint_array<float, 1>* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out)[0] = (*tint_module_vars.in)[0];
 }
diff --git a/test/tint/buffer/storage/types/struct_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/struct_f16.wgsl.expected.ir.msl
index c164eb7..2f4997f 100644
--- a/test/tint/buffer/storage/types/struct_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/struct_f16.wgsl.expected.ir.msl
@@ -22,7 +22,7 @@
   tint_store_and_preserve_padding((&(*target).inner), value_param.inner);
 }
 kernel void tint_symbol(const device S* in [[buffer(0)]], device S* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   S const t = (*tint_module_vars.in);
   tint_store_and_preserve_padding(tint_module_vars.out, t);
 }
diff --git a/test/tint/buffer/storage/types/struct_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/struct_f32.wgsl.expected.ir.msl
index 63beebd..6ede2a0 100644
--- a/test/tint/buffer/storage/types/struct_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/struct_f32.wgsl.expected.ir.msl
@@ -22,7 +22,7 @@
   tint_store_and_preserve_padding((&(*target).inner), value_param.inner);
 }
 kernel void tint_symbol(const device S* in [[buffer(0)]], device S* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   S const t = (*tint_module_vars.in);
   tint_store_and_preserve_padding(tint_module_vars.out, t);
 }
diff --git a/test/tint/buffer/storage/types/u32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/u32.wgsl.expected.ir.msl
index 722f79b..4fcd1da 100644
--- a/test/tint/buffer/storage/types/u32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/u32.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device uint* in [[buffer(0)]], device uint* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/vec2_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/vec2_f16.wgsl.expected.ir.msl
index 7cd3047..29ecf51 100644
--- a/test/tint/buffer/storage/types/vec2_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/vec2_f16.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device half2* in [[buffer(0)]], device half2* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/vec2_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/vec2_f32.wgsl.expected.ir.msl
index 9dc1b65..59707c4 100644
--- a/test/tint/buffer/storage/types/vec2_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/vec2_f32.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device float2* in [[buffer(0)]], device float2* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/vec2_i32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/vec2_i32.wgsl.expected.ir.msl
index d9ac05a2..edca838 100644
--- a/test/tint/buffer/storage/types/vec2_i32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/vec2_i32.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device int2* in [[buffer(0)]], device int2* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/vec2_u32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/vec2_u32.wgsl.expected.ir.msl
index da42370..8c4d30b 100644
--- a/test/tint/buffer/storage/types/vec2_u32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/vec2_u32.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device uint2* in [[buffer(0)]], device uint2* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/vec3_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/vec3_f16.wgsl.expected.ir.msl
index b701bb1..cf9c899 100644
--- a/test/tint/buffer/storage/types/vec3_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/vec3_f16.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device half3* in [[buffer(0)]], device half3* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/vec3_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/vec3_f32.wgsl.expected.ir.msl
index a4c8d83..8c72ff0 100644
--- a/test/tint/buffer/storage/types/vec3_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/vec3_f32.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device float3* in [[buffer(0)]], device float3* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/vec3_i32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/vec3_i32.wgsl.expected.ir.msl
index ecd09c8..fd8a03f 100644
--- a/test/tint/buffer/storage/types/vec3_i32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/vec3_i32.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device int3* in [[buffer(0)]], device int3* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/vec3_u32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/vec3_u32.wgsl.expected.ir.msl
index ed24883..c364121 100644
--- a/test/tint/buffer/storage/types/vec3_u32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/vec3_u32.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device uint3* in [[buffer(0)]], device uint3* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/vec4_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/vec4_f16.wgsl.expected.ir.msl
index 819de0d..eae15ee 100644
--- a/test/tint/buffer/storage/types/vec4_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/vec4_f16.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device half4* in [[buffer(0)]], device half4* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/vec4_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/vec4_f32.wgsl.expected.ir.msl
index b5010a2..c746527 100644
--- a/test/tint/buffer/storage/types/vec4_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/vec4_f32.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device float4* in [[buffer(0)]], device float4* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/vec4_i32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/vec4_i32.wgsl.expected.ir.msl
index ad78b22..180f906 100644
--- a/test/tint/buffer/storage/types/vec4_i32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/vec4_i32.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device int4* in [[buffer(0)]], device int4* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/storage/types/vec4_u32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/vec4_u32.wgsl.expected.ir.msl
index e2459ca..737319d 100644
--- a/test/tint/buffer/storage/types/vec4_u32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/vec4_u32.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 };
 
 kernel void tint_symbol(const device uint4* in [[buffer(0)]], device uint4* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 79e7291..dddf7d6 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 }
 kernel void f(const constant tint_array<float2x2, 4>* a [[buffer(0)]], device float* s [[buffer(1)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .s=s, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .s=s, .counter=(&counter)};
   const constant tint_array<float2x2, 4>* const p_a = tint_module_vars.a;
   const constant float2x2* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant float2* const p_a_i_i = (&(*p_a_i)[i(tint_module_vars)]);
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
index c5b8b2b..29f903c 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -18,7 +18,7 @@
 };
 
 kernel void f(const constant tint_array<float2x2, 4>* a [[buffer(0)]], device float* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .s=s};
   const constant tint_array<float2x2, 4>* const p_a = tint_module_vars.a;
   const constant float2x2* const p_a_2 = (&(*p_a)[2]);
   const constant float2* const p_a_2_1 = (&(*p_a_2)[1]);
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_fn.wgsl.expected.ir.msl
index 67e2c70..f3d8646 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_fn.wgsl.expected.ir.msl
@@ -30,7 +30,7 @@
   return f;
 }
 kernel void f(const constant tint_array<float2x2, 4>* u [[buffer(0)]], device float* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   float const v_1 = a((*tint_module_vars.u));
   float const v_2 = (v_1 + b((*tint_module_vars.u)[1]));
   float const v_3 = (v_2 + c((*tint_module_vars.u)[1][0].yx));
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_private.wgsl.expected.ir.msl
index 8bfe23f..6720128 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_private.wgsl.expected.ir.msl
@@ -20,7 +20,7 @@
 
 kernel void f(const constant tint_array<float2x2, 4>* u [[buffer(0)]], device float* s [[buffer(1)]]) {
   thread tint_array<float2x2, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[1][0] = (*tint_module_vars.u)[0][1].yx;
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_storage.wgsl.expected.ir.msl
index 72effba..978a81d 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_storage.wgsl.expected.ir.msl
@@ -18,7 +18,7 @@
 };
 
 kernel void f(const constant tint_array<float2x2, 4>* u [[buffer(0)]], device tint_array<float2x2, 4>* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   (*tint_module_vars.s) = (*tint_module_vars.u);
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.s)[1][0] = (*tint_module_vars.u)[0][1].yx;
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index aa5a4f7..6cb854c 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 }
 kernel void f(const constant tint_array<half2x3, 4>* a [[buffer(0)]], device half* s [[buffer(1)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .s=s, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .s=s, .counter=(&counter)};
   const constant tint_array<half2x3, 4>* const p_a = tint_module_vars.a;
   const constant half2x3* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant half3* const p_a_i_i = (&(*p_a_i)[i(tint_module_vars)]);
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
index 8910f77..293863e 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -18,7 +18,7 @@
 };
 
 kernel void f(const constant tint_array<half2x3, 4>* a [[buffer(0)]], device half* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .s=s};
   const constant tint_array<half2x3, 4>* const p_a = tint_module_vars.a;
   const constant half2x3* const p_a_2 = (&(*p_a)[2]);
   const constant half3* const p_a_2_1 = (&(*p_a_2)[1]);
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_fn.wgsl.expected.ir.msl
index a52a437..cf80f4b 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_fn.wgsl.expected.ir.msl
@@ -30,7 +30,7 @@
   return f;
 }
 kernel void f(const constant tint_array<half2x3, 4>* u [[buffer(0)]], device half* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   half const v_1 = a((*tint_module_vars.u));
   half const v_2 = (v_1 + b((*tint_module_vars.u)[1]));
   half const v_3 = (v_2 + c((*tint_module_vars.u)[1][0].zxy));
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_private.wgsl.expected.ir.msl
index acf14e0..796aa49 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_private.wgsl.expected.ir.msl
@@ -20,7 +20,7 @@
 
 kernel void f(const constant tint_array<half2x3, 4>* u [[buffer(0)]], device half* s [[buffer(1)]]) {
   thread tint_array<half2x3, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[1][0] = (*tint_module_vars.u)[0][1].zxy;
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 5b3331d..4ecc4f1 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 }
 kernel void f(const constant tint_array<float2x3, 4>* a [[buffer(0)]], device float* s [[buffer(1)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .s=s, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .s=s, .counter=(&counter)};
   const constant tint_array<float2x3, 4>* const p_a = tint_module_vars.a;
   const constant float2x3* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant float3* const p_a_i_i = (&(*p_a_i)[i(tint_module_vars)]);
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
index 9dbb093..d45380d 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -18,7 +18,7 @@
 };
 
 kernel void f(const constant tint_array<float2x3, 4>* a [[buffer(0)]], device float* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .s=s};
   const constant tint_array<float2x3, 4>* const p_a = tint_module_vars.a;
   const constant float2x3* const p_a_2 = (&(*p_a)[2]);
   const constant float3* const p_a_2_1 = (&(*p_a_2)[1]);
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_fn.wgsl.expected.ir.msl
index 8348081..0705e33 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_fn.wgsl.expected.ir.msl
@@ -30,7 +30,7 @@
   return f;
 }
 kernel void f(const constant tint_array<float2x3, 4>* u [[buffer(0)]], device float* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   float const v_1 = a((*tint_module_vars.u));
   float const v_2 = (v_1 + b((*tint_module_vars.u)[1]));
   float const v_3 = (v_2 + c((*tint_module_vars.u)[1][0].zxy));
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_private.wgsl.expected.ir.msl
index 8b4a1a1..8b65d3b 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_private.wgsl.expected.ir.msl
@@ -20,7 +20,7 @@
 
 kernel void f(const constant tint_array<float2x3, 4>* u [[buffer(0)]], device float* s [[buffer(1)]]) {
   thread tint_array<float2x3, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[1][0] = (*tint_module_vars.u)[0][1].zxy;
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index d7eb131..58f1097 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 }
 kernel void f(const constant tint_array<half2x4, 4>* a [[buffer(0)]], device half* s [[buffer(1)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .s=s, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .s=s, .counter=(&counter)};
   const constant tint_array<half2x4, 4>* const p_a = tint_module_vars.a;
   const constant half2x4* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant half4* const p_a_i_i = (&(*p_a_i)[i(tint_module_vars)]);
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
index 605e189..89f3f7a 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -18,7 +18,7 @@
 };
 
 kernel void f(const constant tint_array<half2x4, 4>* a [[buffer(0)]], device half* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .s=s};
   const constant tint_array<half2x4, 4>* const p_a = tint_module_vars.a;
   const constant half2x4* const p_a_2 = (&(*p_a)[2]);
   const constant half4* const p_a_2_1 = (&(*p_a_2)[1]);
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_fn.wgsl.expected.ir.msl
index 226eeed..9986a03 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_fn.wgsl.expected.ir.msl
@@ -30,7 +30,7 @@
   return f;
 }
 kernel void f(const constant tint_array<half2x4, 4>* u [[buffer(0)]], device half* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   half const v_1 = a((*tint_module_vars.u));
   half const v_2 = (v_1 + b((*tint_module_vars.u)[1]));
   half const v_3 = (v_2 + c((*tint_module_vars.u)[1][0].ywxz));
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_private.wgsl.expected.ir.msl
index e4d093e..f391c4d 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_private.wgsl.expected.ir.msl
@@ -20,7 +20,7 @@
 
 kernel void f(const constant tint_array<half2x4, 4>* u [[buffer(0)]], device half* s [[buffer(1)]]) {
   thread tint_array<half2x4, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[1][0] = (*tint_module_vars.u)[0][1].ywxz;
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_storage.wgsl.expected.ir.msl
index 9be526c..b6badfa 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_storage.wgsl.expected.ir.msl
@@ -18,7 +18,7 @@
 };
 
 kernel void f(const constant tint_array<half2x4, 4>* u [[buffer(0)]], device tint_array<half2x4, 4>* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   (*tint_module_vars.s) = (*tint_module_vars.u);
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.s)[1][0] = (*tint_module_vars.u)[0][1].ywxz;
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 7fce1c5..2ade1bd 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 }
 kernel void f(const constant tint_array<float2x4, 4>* a [[buffer(0)]], device float* s [[buffer(1)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .s=s, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .s=s, .counter=(&counter)};
   const constant tint_array<float2x4, 4>* const p_a = tint_module_vars.a;
   const constant float2x4* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant float4* const p_a_i_i = (&(*p_a_i)[i(tint_module_vars)]);
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
index 3b6e56a..caf0012 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -18,7 +18,7 @@
 };
 
 kernel void f(const constant tint_array<float2x4, 4>* a [[buffer(0)]], device float* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .s=s};
   const constant tint_array<float2x4, 4>* const p_a = tint_module_vars.a;
   const constant float2x4* const p_a_2 = (&(*p_a)[2]);
   const constant float4* const p_a_2_1 = (&(*p_a_2)[1]);
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_fn.wgsl.expected.ir.msl
index a904ad7..eb61597 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_fn.wgsl.expected.ir.msl
@@ -30,7 +30,7 @@
   return f;
 }
 kernel void f(const constant tint_array<float2x4, 4>* u [[buffer(0)]], device float* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   float const v_1 = a((*tint_module_vars.u));
   float const v_2 = (v_1 + b((*tint_module_vars.u)[1]));
   float const v_3 = (v_2 + c((*tint_module_vars.u)[1][0].ywxz));
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_private.wgsl.expected.ir.msl
index ee51d8f..34dc2b6 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_private.wgsl.expected.ir.msl
@@ -20,7 +20,7 @@
 
 kernel void f(const constant tint_array<float2x4, 4>* u [[buffer(0)]], device float* s [[buffer(1)]]) {
   thread tint_array<float2x4, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[1][0] = (*tint_module_vars.u)[0][1].ywxz;
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_storage.wgsl.expected.ir.msl
index 2f1ed75..fb126a0 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_storage.wgsl.expected.ir.msl
@@ -18,7 +18,7 @@
 };
 
 kernel void f(const constant tint_array<float2x4, 4>* u [[buffer(0)]], device tint_array<float2x4, 4>* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   (*tint_module_vars.s) = (*tint_module_vars.u);
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.s)[1][0] = (*tint_module_vars.u)[0][1].ywxz;
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 69f3b35..4604d39 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 }
 kernel void f(const constant tint_array<float3x3, 4>* a [[buffer(0)]], device float* s [[buffer(1)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .s=s, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .s=s, .counter=(&counter)};
   const constant tint_array<float3x3, 4>* const p_a = tint_module_vars.a;
   const constant float3x3* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant float3* const p_a_i_i = (&(*p_a_i)[i(tint_module_vars)]);
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
index adace3c..e167906 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -18,7 +18,7 @@
 };
 
 kernel void f(const constant tint_array<float3x3, 4>* a [[buffer(0)]], device float* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .s=s};
   const constant tint_array<float3x3, 4>* const p_a = tint_module_vars.a;
   const constant float3x3* const p_a_2 = (&(*p_a)[2]);
   const constant float3* const p_a_2_1 = (&(*p_a_2)[1]);
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_fn.wgsl.expected.ir.msl
index 059c91c..0ef3585 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_fn.wgsl.expected.ir.msl
@@ -30,7 +30,7 @@
   return f;
 }
 kernel void f(const constant tint_array<float3x3, 4>* u [[buffer(0)]], device float* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   float const v_1 = a((*tint_module_vars.u));
   float const v_2 = (v_1 + b((*tint_module_vars.u)[1]));
   float const v_3 = (v_2 + c((*tint_module_vars.u)[1][0].zxy));
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_private.wgsl.expected.ir.msl
index f4dc4b4..f859df2 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_private.wgsl.expected.ir.msl
@@ -20,7 +20,7 @@
 
 kernel void f(const constant tint_array<float3x3, 4>* u [[buffer(0)]], device float* s [[buffer(1)]]) {
   thread tint_array<float3x3, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[1][0] = (*tint_module_vars.u)[0][1].zxy;
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index a211c1f..394e9a2 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 }
 kernel void f(const constant tint_array<float3x4, 4>* a [[buffer(0)]], device float* s [[buffer(1)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .s=s, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .s=s, .counter=(&counter)};
   const constant tint_array<float3x4, 4>* const p_a = tint_module_vars.a;
   const constant float3x4* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant float4* const p_a_i_i = (&(*p_a_i)[i(tint_module_vars)]);
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
index f6dba61..7ff4389 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -18,7 +18,7 @@
 };
 
 kernel void f(const constant tint_array<float3x4, 4>* a [[buffer(0)]], device float* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .s=s};
   const constant tint_array<float3x4, 4>* const p_a = tint_module_vars.a;
   const constant float3x4* const p_a_2 = (&(*p_a)[2]);
   const constant float4* const p_a_2_1 = (&(*p_a_2)[1]);
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_fn.wgsl.expected.ir.msl
index 3d5f5fa..151e871 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_fn.wgsl.expected.ir.msl
@@ -30,7 +30,7 @@
   return f;
 }
 kernel void f(const constant tint_array<float3x4, 4>* u [[buffer(0)]], device float* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   float const v_1 = a((*tint_module_vars.u));
   float const v_2 = (v_1 + b((*tint_module_vars.u)[1]));
   float const v_3 = (v_2 + c((*tint_module_vars.u)[1][0].ywxz));
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_private.wgsl.expected.ir.msl
index eb86d59..f29156c 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_private.wgsl.expected.ir.msl
@@ -20,7 +20,7 @@
 
 kernel void f(const constant tint_array<float3x4, 4>* u [[buffer(0)]], device float* s [[buffer(1)]]) {
   thread tint_array<float3x4, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[1][0] = (*tint_module_vars.u)[0][1].ywxz;
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_storage.wgsl.expected.ir.msl
index 8e92b5b..3ec9596 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_storage.wgsl.expected.ir.msl
@@ -18,7 +18,7 @@
 };
 
 kernel void f(const constant tint_array<float3x4, 4>* u [[buffer(0)]], device tint_array<float3x4, 4>* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   (*tint_module_vars.s) = (*tint_module_vars.u);
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.s)[1][0] = (*tint_module_vars.u)[0][1].ywxz;
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index c4eb513..f13dd6e 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 }
 kernel void f(const constant tint_array<half4x2, 4>* a [[buffer(0)]], device half* s [[buffer(1)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .s=s, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .s=s, .counter=(&counter)};
   const constant tint_array<half4x2, 4>* const p_a = tint_module_vars.a;
   const constant half4x2* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant half2* const p_a_i_i = (&(*p_a_i)[i(tint_module_vars)]);
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
index 37afaef..0b34f05 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -18,7 +18,7 @@
 };
 
 kernel void f(const constant tint_array<half4x2, 4>* a [[buffer(0)]], device half* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .s=s};
   const constant tint_array<half4x2, 4>* const p_a = tint_module_vars.a;
   const constant half4x2* const p_a_2 = (&(*p_a)[2]);
   const constant half2* const p_a_2_1 = (&(*p_a_2)[1]);
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_fn.wgsl.expected.ir.msl
index 4ca3bac4..4193bdd 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_fn.wgsl.expected.ir.msl
@@ -30,7 +30,7 @@
   return f;
 }
 kernel void f(const constant tint_array<half4x2, 4>* u [[buffer(0)]], device half* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   half const v_1 = a((*tint_module_vars.u));
   half const v_2 = (v_1 + b((*tint_module_vars.u)[1]));
   half const v_3 = (v_2 + c((*tint_module_vars.u)[1][0].yx));
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_private.wgsl.expected.ir.msl
index b39d311..5424830 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_private.wgsl.expected.ir.msl
@@ -20,7 +20,7 @@
 
 kernel void f(const constant tint_array<half4x2, 4>* u [[buffer(0)]], device half* s [[buffer(1)]]) {
   thread tint_array<half4x2, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[1][0] = (*tint_module_vars.u)[0][1].yx;
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_storage.wgsl.expected.ir.msl
index 93389e9..0f5bd92 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_storage.wgsl.expected.ir.msl
@@ -18,7 +18,7 @@
 };
 
 kernel void f(const constant tint_array<half4x2, 4>* u [[buffer(0)]], device tint_array<half4x2, 4>* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   (*tint_module_vars.s) = (*tint_module_vars.u);
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.s)[1][0] = (*tint_module_vars.u)[0][1].yx;
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 1f67ba9..49e47bd 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 }
 kernel void f(const constant tint_array<float4x2, 4>* a [[buffer(0)]], device float* s [[buffer(1)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .s=s, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .s=s, .counter=(&counter)};
   const constant tint_array<float4x2, 4>* const p_a = tint_module_vars.a;
   const constant float4x2* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant float2* const p_a_i_i = (&(*p_a_i)[i(tint_module_vars)]);
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
index b3b6cc7..694e41c 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -18,7 +18,7 @@
 };
 
 kernel void f(const constant tint_array<float4x2, 4>* a [[buffer(0)]], device float* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .s=s};
   const constant tint_array<float4x2, 4>* const p_a = tint_module_vars.a;
   const constant float4x2* const p_a_2 = (&(*p_a)[2]);
   const constant float2* const p_a_2_1 = (&(*p_a_2)[1]);
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_fn.wgsl.expected.ir.msl
index 88a5591..3eb642d 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_fn.wgsl.expected.ir.msl
@@ -30,7 +30,7 @@
   return f;
 }
 kernel void f(const constant tint_array<float4x2, 4>* u [[buffer(0)]], device float* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   float const v_1 = a((*tint_module_vars.u));
   float const v_2 = (v_1 + b((*tint_module_vars.u)[1]));
   float const v_3 = (v_2 + c((*tint_module_vars.u)[1][0].yx));
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_private.wgsl.expected.ir.msl
index 9da2dfb..e39349f 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_private.wgsl.expected.ir.msl
@@ -20,7 +20,7 @@
 
 kernel void f(const constant tint_array<float4x2, 4>* u [[buffer(0)]], device float* s [[buffer(1)]]) {
   thread tint_array<float4x2, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[1][0] = (*tint_module_vars.u)[0][1].yx;
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_storage.wgsl.expected.ir.msl
index 917712a..ed4f4b4 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_storage.wgsl.expected.ir.msl
@@ -18,7 +18,7 @@
 };
 
 kernel void f(const constant tint_array<float4x2, 4>* u [[buffer(0)]], device tint_array<float4x2, 4>* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   (*tint_module_vars.s) = (*tint_module_vars.u);
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.s)[1][0] = (*tint_module_vars.u)[0][1].yx;
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 6856843..29f8d17 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 }
 kernel void f(const constant tint_array<half4x3, 4>* a [[buffer(0)]], device half* s [[buffer(1)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .s=s, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .s=s, .counter=(&counter)};
   const constant tint_array<half4x3, 4>* const p_a = tint_module_vars.a;
   const constant half4x3* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant half3* const p_a_i_i = (&(*p_a_i)[i(tint_module_vars)]);
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
index c5316d9..10de4e2 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -18,7 +18,7 @@
 };
 
 kernel void f(const constant tint_array<half4x3, 4>* a [[buffer(0)]], device half* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .s=s};
   const constant tint_array<half4x3, 4>* const p_a = tint_module_vars.a;
   const constant half4x3* const p_a_2 = (&(*p_a)[2]);
   const constant half3* const p_a_2_1 = (&(*p_a_2)[1]);
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_fn.wgsl.expected.ir.msl
index 195f28a..cbf80ec 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_fn.wgsl.expected.ir.msl
@@ -30,7 +30,7 @@
   return f;
 }
 kernel void f(const constant tint_array<half4x3, 4>* u [[buffer(0)]], device half* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   half const v_1 = a((*tint_module_vars.u));
   half const v_2 = (v_1 + b((*tint_module_vars.u)[1]));
   half const v_3 = (v_2 + c((*tint_module_vars.u)[1][0].zxy));
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_private.wgsl.expected.ir.msl
index 6f079fe..2204e68 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_private.wgsl.expected.ir.msl
@@ -20,7 +20,7 @@
 
 kernel void f(const constant tint_array<half4x3, 4>* u [[buffer(0)]], device half* s [[buffer(1)]]) {
   thread tint_array<half4x3, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[1][0] = (*tint_module_vars.u)[0][1].zxy;
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 59ab336..f89e227 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 }
 kernel void f(const constant tint_array<float4x3, 4>* a [[buffer(0)]], device float* s [[buffer(1)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .s=s, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .s=s, .counter=(&counter)};
   const constant tint_array<float4x3, 4>* const p_a = tint_module_vars.a;
   const constant float4x3* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant float3* const p_a_i_i = (&(*p_a_i)[i(tint_module_vars)]);
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
index e0a1c24..9b94863 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -18,7 +18,7 @@
 };
 
 kernel void f(const constant tint_array<float4x3, 4>* a [[buffer(0)]], device float* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .s=s};
   const constant tint_array<float4x3, 4>* const p_a = tint_module_vars.a;
   const constant float4x3* const p_a_2 = (&(*p_a)[2]);
   const constant float3* const p_a_2_1 = (&(*p_a_2)[1]);
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_fn.wgsl.expected.ir.msl
index 7f13ac2f..96b7e37 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_fn.wgsl.expected.ir.msl
@@ -30,7 +30,7 @@
   return f;
 }
 kernel void f(const constant tint_array<float4x3, 4>* u [[buffer(0)]], device float* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   float const v_1 = a((*tint_module_vars.u));
   float const v_2 = (v_1 + b((*tint_module_vars.u)[1]));
   float const v_3 = (v_2 + c((*tint_module_vars.u)[1][0].zxy));
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_private.wgsl.expected.ir.msl
index 847112b..682ff67 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_private.wgsl.expected.ir.msl
@@ -20,7 +20,7 @@
 
 kernel void f(const constant tint_array<float4x3, 4>* u [[buffer(0)]], device float* s [[buffer(1)]]) {
   thread tint_array<float4x3, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[1][0] = (*tint_module_vars.u)[0][1].zxy;
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 5fe3f57..600b0ad 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 }
 kernel void f(const constant tint_array<half4x4, 4>* a [[buffer(0)]], device half* s [[buffer(1)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .s=s, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .s=s, .counter=(&counter)};
   const constant tint_array<half4x4, 4>* const p_a = tint_module_vars.a;
   const constant half4x4* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant half4* const p_a_i_i = (&(*p_a_i)[i(tint_module_vars)]);
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
index 9ddf2fd..88fe87e 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -18,7 +18,7 @@
 };
 
 kernel void f(const constant tint_array<half4x4, 4>* a [[buffer(0)]], device half* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .s=s};
   const constant tint_array<half4x4, 4>* const p_a = tint_module_vars.a;
   const constant half4x4* const p_a_2 = (&(*p_a)[2]);
   const constant half4* const p_a_2_1 = (&(*p_a_2)[1]);
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_fn.wgsl.expected.ir.msl
index fc71381..433ab75 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_fn.wgsl.expected.ir.msl
@@ -30,7 +30,7 @@
   return f;
 }
 kernel void f(const constant tint_array<half4x4, 4>* u [[buffer(0)]], device half* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   half const v_1 = a((*tint_module_vars.u));
   half const v_2 = (v_1 + b((*tint_module_vars.u)[1]));
   half const v_3 = (v_2 + c((*tint_module_vars.u)[1][0].ywxz));
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_private.wgsl.expected.ir.msl
index 59f6a82..2500b37 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_private.wgsl.expected.ir.msl
@@ -20,7 +20,7 @@
 
 kernel void f(const constant tint_array<half4x4, 4>* u [[buffer(0)]], device half* s [[buffer(1)]]) {
   thread tint_array<half4x4, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[1][0] = (*tint_module_vars.u)[0][1].ywxz;
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_storage.wgsl.expected.ir.msl
index 61051b4..ad04991 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_storage.wgsl.expected.ir.msl
@@ -18,7 +18,7 @@
 };
 
 kernel void f(const constant tint_array<half4x4, 4>* u [[buffer(0)]], device tint_array<half4x4, 4>* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   (*tint_module_vars.s) = (*tint_module_vars.u);
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.s)[1][0] = (*tint_module_vars.u)[0][1].ywxz;
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index f507fba..7e56f75 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 }
 kernel void f(const constant tint_array<float4x4, 4>* a [[buffer(0)]], device float* s [[buffer(1)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .s=s, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .s=s, .counter=(&counter)};
   const constant tint_array<float4x4, 4>* const p_a = tint_module_vars.a;
   const constant float4x4* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant float4* const p_a_i_i = (&(*p_a_i)[i(tint_module_vars)]);
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
index c1e9f20..b9cb3ab 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -18,7 +18,7 @@
 };
 
 kernel void f(const constant tint_array<float4x4, 4>* a [[buffer(0)]], device float* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .s=s};
   const constant tint_array<float4x4, 4>* const p_a = tint_module_vars.a;
   const constant float4x4* const p_a_2 = (&(*p_a)[2]);
   const constant float4* const p_a_2_1 = (&(*p_a_2)[1]);
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_fn.wgsl.expected.ir.msl
index 6ca01b6..fbcb3f9 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_fn.wgsl.expected.ir.msl
@@ -30,7 +30,7 @@
   return f;
 }
 kernel void f(const constant tint_array<float4x4, 4>* u [[buffer(0)]], device float* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   float const v_1 = a((*tint_module_vars.u));
   float const v_2 = (v_1 + b((*tint_module_vars.u)[1]));
   float const v_3 = (v_2 + c((*tint_module_vars.u)[1][0].ywxz));
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_private.wgsl.expected.ir.msl
index 47e38ef..4a0ee90 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_private.wgsl.expected.ir.msl
@@ -20,7 +20,7 @@
 
 kernel void f(const constant tint_array<float4x4, 4>* u [[buffer(0)]], device float* s [[buffer(1)]]) {
   thread tint_array<float4x4, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[1][0] = (*tint_module_vars.u)[0][1].ywxz;
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_storage.wgsl.expected.ir.msl
index 4b3a5f6..0251749 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_storage.wgsl.expected.ir.msl
@@ -18,7 +18,7 @@
 };
 
 kernel void f(const constant tint_array<float4x4, 4>* u [[buffer(0)]], device tint_array<float4x4, 4>* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   (*tint_module_vars.s) = (*tint_module_vars.u);
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.s)[1][0] = (*tint_module_vars.u)[0][1].ywxz;
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index ad04662..e453caf 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -29,7 +29,7 @@
 }
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .counter=(&counter)};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant tint_array<Inner, 4>* const p_a_i_a = (&(*p_a_i).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
index 1970fa5..c3f4588 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -23,7 +23,7 @@
 };
 
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_3 = (&(*p_a)[3]);
   const constant tint_array<Inner, 4>* const p_a_3_a = (&(*p_a_3).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_fn.wgsl.expected.ir.msl
index 0c6f2ef..cc42bb0 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_fn.wgsl.expected.ir.msl
@@ -32,7 +32,7 @@
 void e(half f) {
 }
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[2]);
   c((*tint_module_vars.u)[2].m);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_private.wgsl.expected.ir.msl
index 420cc47..95d7670 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_private.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
   thread tint_array<S, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[3].m = (*tint_module_vars.u)[2].m;
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index fad5c3b..6b65e44 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -29,7 +29,7 @@
 }
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .counter=(&counter)};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant tint_array<Inner, 4>* const p_a_i_a = (&(*p_a_i).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
index 1c3c2c3..8a4a65d 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -23,7 +23,7 @@
 };
 
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_3 = (&(*p_a)[3]);
   const constant tint_array<Inner, 4>* const p_a_3_a = (&(*p_a_3).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.ir.msl
index 7d22fe3..a0f397e 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.ir.msl
@@ -32,7 +32,7 @@
 void e(float f) {
 }
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[2]);
   c((*tint_module_vars.u)[2].m);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.ir.msl
index 28c0c90..9f71a6c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
   thread tint_array<S, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[3].m = (*tint_module_vars.u)[2].m;
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 454aa71..564d02a 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -29,7 +29,7 @@
 }
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .counter=(&counter)};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant tint_array<Inner, 4>* const p_a_i_a = (&(*p_a_i).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
index 8d4e8cb..7457979 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -23,7 +23,7 @@
 };
 
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_3 = (&(*p_a)[3]);
   const constant tint_array<Inner, 4>* const p_a_3_a = (&(*p_a_3).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_fn.wgsl.expected.ir.msl
index 3fbff88..4237930 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_fn.wgsl.expected.ir.msl
@@ -32,7 +32,7 @@
 void e(half f) {
 }
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[2]);
   c((*tint_module_vars.u)[2].m);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_private.wgsl.expected.ir.msl
index 85a6ad2..67b25ff 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_private.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
   thread tint_array<S, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[3].m = (*tint_module_vars.u)[2].m;
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index d93f367..52de548 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -29,7 +29,7 @@
 }
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .counter=(&counter)};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant tint_array<Inner, 4>* const p_a_i_a = (&(*p_a_i).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
index 498987e..debd8f5 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -23,7 +23,7 @@
 };
 
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_3 = (&(*p_a)[3]);
   const constant tint_array<Inner, 4>* const p_a_3_a = (&(*p_a_3).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.ir.msl
index 3c77ce1..cfe248c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.ir.msl
@@ -32,7 +32,7 @@
 void e(float f) {
 }
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[2]);
   c((*tint_module_vars.u)[2].m);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.ir.msl
index fad6151..6d47609 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
   thread tint_array<S, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[3].m = (*tint_module_vars.u)[2].m;
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index bc93062..e096668 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -29,7 +29,7 @@
 }
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .counter=(&counter)};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant tint_array<Inner, 4>* const p_a_i_a = (&(*p_a_i).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
index c41dbb3..ff18959 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -23,7 +23,7 @@
 };
 
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_3 = (&(*p_a)[3]);
   const constant tint_array<Inner, 4>* const p_a_3_a = (&(*p_a_3).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_fn.wgsl.expected.ir.msl
index d72a5a4..4839eec 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_fn.wgsl.expected.ir.msl
@@ -32,7 +32,7 @@
 void e(half f) {
 }
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[2]);
   c((*tint_module_vars.u)[2].m);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_private.wgsl.expected.ir.msl
index fc9a177..3c00693 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_private.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
   thread tint_array<S, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[3].m = (*tint_module_vars.u)[2].m;
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 5680b16..df64b76 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -29,7 +29,7 @@
 }
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .counter=(&counter)};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant tint_array<Inner, 4>* const p_a_i_a = (&(*p_a_i).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
index 662374c..39d2cea 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -23,7 +23,7 @@
 };
 
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_3 = (&(*p_a)[3]);
   const constant tint_array<Inner, 4>* const p_a_3_a = (&(*p_a_3).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.ir.msl
index 8294d15..4e87a2e 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.ir.msl
@@ -32,7 +32,7 @@
 void e(float f) {
 }
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[2]);
   c((*tint_module_vars.u)[2].m);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.ir.msl
index 4243cf8..569b5dd 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
   thread tint_array<S, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[3].m = (*tint_module_vars.u)[2].m;
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 5c64921..6ab90b3 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -29,7 +29,7 @@
 }
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .counter=(&counter)};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant tint_array<Inner, 4>* const p_a_i_a = (&(*p_a_i).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
index 54240b6..fda16e1 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -23,7 +23,7 @@
 };
 
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_3 = (&(*p_a)[3]);
   const constant tint_array<Inner, 4>* const p_a_3_a = (&(*p_a_3).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_fn.wgsl.expected.ir.msl
index bf04a55..a0671a7 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_fn.wgsl.expected.ir.msl
@@ -32,7 +32,7 @@
 void e(half f) {
 }
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[2]);
   c((*tint_module_vars.u)[2].m);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_private.wgsl.expected.ir.msl
index 1232423..a94f30a 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_private.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
   thread tint_array<S, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[3].m = (*tint_module_vars.u)[2].m;
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index dfe6fbf..3a29813 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -29,7 +29,7 @@
 }
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .counter=(&counter)};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant tint_array<Inner, 4>* const p_a_i_a = (&(*p_a_i).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
index 2ede16c..4590e79 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -23,7 +23,7 @@
 };
 
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_3 = (&(*p_a)[3]);
   const constant tint_array<Inner, 4>* const p_a_3_a = (&(*p_a_3).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.ir.msl
index d7d9f54..8dc0cef 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.ir.msl
@@ -32,7 +32,7 @@
 void e(float f) {
 }
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[2]);
   c((*tint_module_vars.u)[2].m);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.ir.msl
index 6d86e13..cfc5553 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
   thread tint_array<S, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[3].m = (*tint_module_vars.u)[2].m;
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index b2ac467..4e0f663 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -29,7 +29,7 @@
 }
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .counter=(&counter)};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant tint_array<Inner, 4>* const p_a_i_a = (&(*p_a_i).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
index 20dd259..c058e63 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -23,7 +23,7 @@
 };
 
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_3 = (&(*p_a)[3]);
   const constant tint_array<Inner, 4>* const p_a_3_a = (&(*p_a_3).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_fn.wgsl.expected.ir.msl
index 5a5fbe9..37dfffc 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_fn.wgsl.expected.ir.msl
@@ -32,7 +32,7 @@
 void e(half f) {
 }
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[2]);
   c((*tint_module_vars.u)[2].m);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_private.wgsl.expected.ir.msl
index 6dd2e33..87c1b0a 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_private.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
   thread tint_array<S, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[3].m = (*tint_module_vars.u)[2].m;
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 7205444..e409dac 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -29,7 +29,7 @@
 }
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .counter=(&counter)};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant tint_array<Inner, 4>* const p_a_i_a = (&(*p_a_i).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
index 8cc89bc..9e36c20 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -23,7 +23,7 @@
 };
 
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_3 = (&(*p_a)[3]);
   const constant tint_array<Inner, 4>* const p_a_3_a = (&(*p_a_3).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.ir.msl
index 8dae9f3..c04aee4 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.ir.msl
@@ -32,7 +32,7 @@
 void e(float f) {
 }
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[2]);
   c((*tint_module_vars.u)[2].m);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.ir.msl
index 4f87d7f..731e932 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
   thread tint_array<S, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[3].m = (*tint_module_vars.u)[2].m;
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 3cc7689..81e8e2d 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -29,7 +29,7 @@
 }
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .counter=(&counter)};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant tint_array<Inner, 4>* const p_a_i_a = (&(*p_a_i).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
index e621906..bfa87de 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -23,7 +23,7 @@
 };
 
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_3 = (&(*p_a)[3]);
   const constant tint_array<Inner, 4>* const p_a_3_a = (&(*p_a_3).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_fn.wgsl.expected.ir.msl
index b3c0a10c..675a0f4d 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_fn.wgsl.expected.ir.msl
@@ -32,7 +32,7 @@
 void e(half f) {
 }
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[2]);
   c((*tint_module_vars.u)[2].m);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_private.wgsl.expected.ir.msl
index a52db6b..633ccc2 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_private.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
   thread tint_array<S, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[3].m = (*tint_module_vars.u)[2].m;
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index eb95e46..e2e809b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -29,7 +29,7 @@
 }
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .counter=(&counter)};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant tint_array<Inner, 4>* const p_a_i_a = (&(*p_a_i).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
index 6abe3b0..712e91c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -23,7 +23,7 @@
 };
 
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_3 = (&(*p_a)[3]);
   const constant tint_array<Inner, 4>* const p_a_3_a = (&(*p_a_3).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.ir.msl
index 375b6b7..135acb3 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.ir.msl
@@ -32,7 +32,7 @@
 void e(float f) {
 }
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[2]);
   c((*tint_module_vars.u)[2].m);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.ir.msl
index c5d5e59..93c316a 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
   thread tint_array<S, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[3].m = (*tint_module_vars.u)[2].m;
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index af99486..993e3e9 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -29,7 +29,7 @@
 }
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .counter=(&counter)};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant tint_array<Inner, 4>* const p_a_i_a = (&(*p_a_i).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
index fee4e98..aeb2905 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -23,7 +23,7 @@
 };
 
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_3 = (&(*p_a)[3]);
   const constant tint_array<Inner, 4>* const p_a_3_a = (&(*p_a_3).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_fn.wgsl.expected.ir.msl
index fec6911..5e90d90 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_fn.wgsl.expected.ir.msl
@@ -32,7 +32,7 @@
 void e(half f) {
 }
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[2]);
   c((*tint_module_vars.u)[2].m);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_private.wgsl.expected.ir.msl
index 3f7ad3d..3dd8d16 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_private.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
   thread tint_array<S, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[3].m = (*tint_module_vars.u)[2].m;
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 8c058e1..5469544 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -29,7 +29,7 @@
 }
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .counter=(&counter)};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant tint_array<Inner, 4>* const p_a_i_a = (&(*p_a_i).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
index d21986e..1338371 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -23,7 +23,7 @@
 };
 
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_3 = (&(*p_a)[3]);
   const constant tint_array<Inner, 4>* const p_a_3_a = (&(*p_a_3).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.ir.msl
index c4d8718..6940cd1 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.ir.msl
@@ -32,7 +32,7 @@
 void e(float f) {
 }
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[2]);
   c((*tint_module_vars.u)[2].m);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.ir.msl
index 636832a..4d8d4c1 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
   thread tint_array<S, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[3].m = (*tint_module_vars.u)[2].m;
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index ea597bc..d667286 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -29,7 +29,7 @@
 }
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .counter=(&counter)};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant tint_array<Inner, 4>* const p_a_i_a = (&(*p_a_i).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
index 887ffc5..b0996d0 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -23,7 +23,7 @@
 };
 
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_3 = (&(*p_a)[3]);
   const constant tint_array<Inner, 4>* const p_a_3_a = (&(*p_a_3).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_fn.wgsl.expected.ir.msl
index 0f0d3f9..5b26a0a 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_fn.wgsl.expected.ir.msl
@@ -32,7 +32,7 @@
 void e(half f) {
 }
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[2]);
   c((*tint_module_vars.u)[2].m);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_private.wgsl.expected.ir.msl
index 47e0ffc..3db335c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_private.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
   thread tint_array<S, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[3].m = (*tint_module_vars.u)[2].m;
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index a13af1b..dce291f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -29,7 +29,7 @@
 }
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .counter=(&counter)};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant tint_array<Inner, 4>* const p_a_i_a = (&(*p_a_i).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
index b1a2bec..f7624ed 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -23,7 +23,7 @@
 };
 
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_3 = (&(*p_a)[3]);
   const constant tint_array<Inner, 4>* const p_a_3_a = (&(*p_a_3).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.ir.msl
index 0f8f2fa..5d7e53e 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.ir.msl
@@ -32,7 +32,7 @@
 void e(float f) {
 }
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[2]);
   c((*tint_module_vars.u)[2].m);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.ir.msl
index 705fe4f..852a4cc 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
   thread tint_array<S, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[3].m = (*tint_module_vars.u)[2].m;
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index c1da52f..591e29f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -29,7 +29,7 @@
 }
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .counter=(&counter)};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant tint_array<Inner, 4>* const p_a_i_a = (&(*p_a_i).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
index b6998d2..e1a7e42 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -23,7 +23,7 @@
 };
 
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_3 = (&(*p_a)[3]);
   const constant tint_array<Inner, 4>* const p_a_3_a = (&(*p_a_3).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_fn.wgsl.expected.ir.msl
index 1cb00c3..55d5401 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_fn.wgsl.expected.ir.msl
@@ -32,7 +32,7 @@
 void e(half f) {
 }
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[2]);
   c((*tint_module_vars.u)[2].m);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_private.wgsl.expected.ir.msl
index ef9038e..34a5362 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_private.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
   thread tint_array<S, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[3].m = (*tint_module_vars.u)[2].m;
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index ef7eb1f..4da53ab 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -29,7 +29,7 @@
 }
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.a=a, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a, .counter=(&counter)};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_i = (&(*p_a)[i(tint_module_vars)]);
   const constant tint_array<Inner, 4>* const p_a_i_a = (&(*p_a_i).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
index 29ee601..6833a9f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -23,7 +23,7 @@
 };
 
 kernel void f(const constant tint_array<Outer, 4>* a [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.a=a};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=a};
   const constant tint_array<Outer, 4>* const p_a = tint_module_vars.a;
   const constant Outer* const p_a_3 = (&(*p_a)[3]);
   const constant tint_array<Inner, 4>* const p_a_3_a = (&(*p_a_3).a);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.ir.msl
index 9e538e9..4be37bd 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.ir.msl
@@ -32,7 +32,7 @@
 void e(float f) {
 }
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[2]);
   c((*tint_module_vars.u)[2].m);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.ir.msl
index b5f5b49..435a357 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.ir.msl
@@ -24,7 +24,7 @@
 
 kernel void f(const constant tint_array<S, 4>* u [[buffer(0)]]) {
   thread tint_array<S, 4> p = {};
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[2];
   (*tint_module_vars.p)[3].m = (*tint_module_vars.u)[2].m;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index aa9167c..e2a1d12 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 }
 kernel void f(const constant half2x2* m [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.m=m, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=m, .counter=(&counter)};
   const constant half2x2* const p_m = tint_module_vars.m;
   const constant half2* const p_m_i = (&(*p_m)[i(tint_module_vars)]);
   half2x2 const l_m = (*p_m);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_fn.wgsl.expected.ir.msl
index b752d0b..574bf67 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_fn.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 void c(half f) {
 }
 kernel void f(const constant half2x2* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[1]);
   b((*tint_module_vars.u)[1].yx);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_private.wgsl.expected.ir.msl
index aa953cf..85591f0 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_private.wgsl.expected.ir.msl
@@ -7,7 +7,7 @@
 
 kernel void f(const constant half2x2* u [[buffer(0)]]) {
   thread half2x2 p = half2x2(0.0h);
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0].yx;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_storage.wgsl.expected.ir.msl
index 6d5f8e9..47e619e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_storage.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void f(const constant half2x2* u [[buffer(0)]], device half2x2* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   (*tint_module_vars.s) = (*tint_module_vars.u);
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0].yx;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 66efc9f..d233159 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 }
 kernel void f(const constant float2x2* m [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.m=m, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=m, .counter=(&counter)};
   const constant float2x2* const p_m = tint_module_vars.m;
   const constant float2* const p_m_i = (&(*p_m)[i(tint_module_vars)]);
   float2x2 const l_m = (*p_m);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_fn.wgsl.expected.ir.msl
index 1308d6d..15dc6ea 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_fn.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 void c(float f) {
 }
 kernel void f(const constant float2x2* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[1]);
   b((*tint_module_vars.u)[1].yx);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_private.wgsl.expected.ir.msl
index 679d0e6..f659be7 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_private.wgsl.expected.ir.msl
@@ -7,7 +7,7 @@
 
 kernel void f(const constant float2x2* u [[buffer(0)]]) {
   thread float2x2 p = float2x2(0.0f);
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0].yx;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_storage.wgsl.expected.ir.msl
index 43e7c97..8ab3154 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_storage.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void f(const constant float2x2* u [[buffer(0)]], device float2x2* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   (*tint_module_vars.s) = (*tint_module_vars.u);
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0].yx;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 417e155..0ccdd97 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 }
 kernel void f(const constant half2x3* m [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.m=m, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=m, .counter=(&counter)};
   const constant half2x3* const p_m = tint_module_vars.m;
   const constant half3* const p_m_i = (&(*p_m)[i(tint_module_vars)]);
   half2x3 const l_m = (*p_m);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_fn.wgsl.expected.ir.msl
index 7bccb4a..1b10493 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_fn.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 void c(half f) {
 }
 kernel void f(const constant half2x3* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[1]);
   b((*tint_module_vars.u)[1].zxy);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_private.wgsl.expected.ir.msl
index 37eb19c..dcfa264 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_private.wgsl.expected.ir.msl
@@ -7,7 +7,7 @@
 
 kernel void f(const constant half2x3* u [[buffer(0)]]) {
   thread half2x3 p = half2x3(0.0h);
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0].zxy;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_storage.wgsl.expected.ir.msl
index b57de7b..6adb685 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_storage.wgsl.expected.ir.msl
@@ -10,7 +10,7 @@
   (*target)[1u] = value_param[1u];
 }
 kernel void f(const constant half2x3* u [[buffer(0)]], device half2x3* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   tint_store_and_preserve_padding(tint_module_vars.s, (*tint_module_vars.u));
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0].zxy;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index af9f52c..ee26dae 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 }
 kernel void f(const constant float2x3* m [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.m=m, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=m, .counter=(&counter)};
   const constant float2x3* const p_m = tint_module_vars.m;
   const constant float3* const p_m_i = (&(*p_m)[i(tint_module_vars)]);
   float2x3 const l_m = (*p_m);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_fn.wgsl.expected.ir.msl
index 477f30b..de4bcff 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_fn.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 void c(float f) {
 }
 kernel void f(const constant float2x3* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[1]);
   b((*tint_module_vars.u)[1].zxy);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_private.wgsl.expected.ir.msl
index ad75be5..799cc59 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_private.wgsl.expected.ir.msl
@@ -7,7 +7,7 @@
 
 kernel void f(const constant float2x3* u [[buffer(0)]]) {
   thread float2x3 p = float2x3(0.0f);
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0].zxy;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_storage.wgsl.expected.ir.msl
index e6a439e..1fd389f 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_storage.wgsl.expected.ir.msl
@@ -10,7 +10,7 @@
   (*target)[1u] = value_param[1u];
 }
 kernel void f(const constant float2x3* u [[buffer(0)]], device float2x3* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   tint_store_and_preserve_padding(tint_module_vars.s, (*tint_module_vars.u));
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0].zxy;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index b357225..7e3500b 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 }
 kernel void f(const constant half2x4* m [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.m=m, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=m, .counter=(&counter)};
   const constant half2x4* const p_m = tint_module_vars.m;
   const constant half4* const p_m_i = (&(*p_m)[i(tint_module_vars)]);
   half2x4 const l_m = (*p_m);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_fn.wgsl.expected.ir.msl
index 5ebe57f..44470f2 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_fn.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 void c(half f) {
 }
 kernel void f(const constant half2x4* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[1]);
   b((*tint_module_vars.u)[1].ywxz);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_private.wgsl.expected.ir.msl
index f76ad5b..3dd4635 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_private.wgsl.expected.ir.msl
@@ -7,7 +7,7 @@
 
 kernel void f(const constant half2x4* u [[buffer(0)]]) {
   thread half2x4 p = half2x4(0.0h);
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0].ywxz;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_storage.wgsl.expected.ir.msl
index 12374ed..e6f3d2a 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_storage.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void f(const constant half2x4* u [[buffer(0)]], device half2x4* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   (*tint_module_vars.s) = (*tint_module_vars.u);
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0].ywxz;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 135950a..9c929fc 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 }
 kernel void f(const constant float2x4* m [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.m=m, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=m, .counter=(&counter)};
   const constant float2x4* const p_m = tint_module_vars.m;
   const constant float4* const p_m_i = (&(*p_m)[i(tint_module_vars)]);
   float2x4 const l_m = (*p_m);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_fn.wgsl.expected.ir.msl
index 2c00f86..5b3eaec 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_fn.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 void c(float f) {
 }
 kernel void f(const constant float2x4* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[1]);
   b((*tint_module_vars.u)[1].ywxz);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_private.wgsl.expected.ir.msl
index 4ea2b1c..9ff0696 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_private.wgsl.expected.ir.msl
@@ -7,7 +7,7 @@
 
 kernel void f(const constant float2x4* u [[buffer(0)]]) {
   thread float2x4 p = float2x4(0.0f);
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0].ywxz;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_storage.wgsl.expected.ir.msl
index 513bbdb..7de9821 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_storage.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void f(const constant float2x4* u [[buffer(0)]], device float2x4* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   (*tint_module_vars.s) = (*tint_module_vars.u);
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0].ywxz;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 1299144..46359a9 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 }
 kernel void f(const constant half3x2* m [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.m=m, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=m, .counter=(&counter)};
   const constant half3x2* const p_m = tint_module_vars.m;
   const constant half2* const p_m_i = (&(*p_m)[i(tint_module_vars)]);
   half3x2 const l_m = (*p_m);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_fn.wgsl.expected.ir.msl
index a8440f0..19ab623 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_fn.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 void c(half f) {
 }
 kernel void f(const constant half3x2* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[1]);
   b((*tint_module_vars.u)[1].yx);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_private.wgsl.expected.ir.msl
index a319e46..56aeece 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_private.wgsl.expected.ir.msl
@@ -7,7 +7,7 @@
 
 kernel void f(const constant half3x2* u [[buffer(0)]]) {
   thread half3x2 p = half3x2(0.0h);
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0].yx;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_storage.wgsl.expected.ir.msl
index 950172d..651d8e6 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_storage.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void f(const constant half3x2* u [[buffer(0)]], device half3x2* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   (*tint_module_vars.s) = (*tint_module_vars.u);
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0].yx;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index a35f6c1..44b8310 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 }
 kernel void f(const constant float3x2* m [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.m=m, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=m, .counter=(&counter)};
   const constant float3x2* const p_m = tint_module_vars.m;
   const constant float2* const p_m_i = (&(*p_m)[i(tint_module_vars)]);
   float3x2 const l_m = (*p_m);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_fn.wgsl.expected.ir.msl
index 4a911c4..5691994 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_fn.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 void c(float f) {
 }
 kernel void f(const constant float3x2* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[1]);
   b((*tint_module_vars.u)[1].yx);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_private.wgsl.expected.ir.msl
index 16c0a92..e6eb97a 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_private.wgsl.expected.ir.msl
@@ -7,7 +7,7 @@
 
 kernel void f(const constant float3x2* u [[buffer(0)]]) {
   thread float3x2 p = float3x2(0.0f);
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0].yx;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_storage.wgsl.expected.ir.msl
index 99f310b..7661f43 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_storage.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void f(const constant float3x2* u [[buffer(0)]], device float3x2* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   (*tint_module_vars.s) = (*tint_module_vars.u);
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0].yx;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 7563f3c..2d16645 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 }
 kernel void f(const constant half3x3* m [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.m=m, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=m, .counter=(&counter)};
   const constant half3x3* const p_m = tint_module_vars.m;
   const constant half3* const p_m_i = (&(*p_m)[i(tint_module_vars)]);
   half3x3 const l_m = (*p_m);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_fn.wgsl.expected.ir.msl
index 42c5649..ec5bcac 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_fn.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 void c(half f) {
 }
 kernel void f(const constant half3x3* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[1]);
   b((*tint_module_vars.u)[1].zxy);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_private.wgsl.expected.ir.msl
index ac95c53..412a893 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_private.wgsl.expected.ir.msl
@@ -7,7 +7,7 @@
 
 kernel void f(const constant half3x3* u [[buffer(0)]]) {
   thread half3x3 p = half3x3(0.0h);
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0].zxy;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_storage.wgsl.expected.ir.msl
index 920a8a0..e99a0b6 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_storage.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
   (*target)[2u] = value_param[2u];
 }
 kernel void f(const constant half3x3* u [[buffer(0)]], device half3x3* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   tint_store_and_preserve_padding(tint_module_vars.s, (*tint_module_vars.u));
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0].zxy;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index cada3d6..ae1a8b9 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 }
 kernel void f(const constant float3x3* m [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.m=m, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=m, .counter=(&counter)};
   const constant float3x3* const p_m = tint_module_vars.m;
   const constant float3* const p_m_i = (&(*p_m)[i(tint_module_vars)]);
   float3x3 const l_m = (*p_m);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_fn.wgsl.expected.ir.msl
index a605cc2..0087aba 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_fn.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 void c(float f) {
 }
 kernel void f(const constant float3x3* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[1]);
   b((*tint_module_vars.u)[1].zxy);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_private.wgsl.expected.ir.msl
index 55dad8a..33e09a8 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_private.wgsl.expected.ir.msl
@@ -7,7 +7,7 @@
 
 kernel void f(const constant float3x3* u [[buffer(0)]]) {
   thread float3x3 p = float3x3(0.0f);
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0].zxy;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_storage.wgsl.expected.ir.msl
index a68a88b..91a0d29 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_storage.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
   (*target)[2u] = value_param[2u];
 }
 kernel void f(const constant float3x3* u [[buffer(0)]], device float3x3* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   tint_store_and_preserve_padding(tint_module_vars.s, (*tint_module_vars.u));
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0].zxy;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index bdeee5b..c43efc3 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 }
 kernel void f(const constant half3x4* m [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.m=m, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=m, .counter=(&counter)};
   const constant half3x4* const p_m = tint_module_vars.m;
   const constant half4* const p_m_i = (&(*p_m)[i(tint_module_vars)]);
   half3x4 const l_m = (*p_m);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_fn.wgsl.expected.ir.msl
index 68d5ea3..68a249f 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_fn.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 void c(half f) {
 }
 kernel void f(const constant half3x4* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[1]);
   b((*tint_module_vars.u)[1].ywxz);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_private.wgsl.expected.ir.msl
index 8cc1d30..a363585 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_private.wgsl.expected.ir.msl
@@ -7,7 +7,7 @@
 
 kernel void f(const constant half3x4* u [[buffer(0)]]) {
   thread half3x4 p = half3x4(0.0h);
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0].ywxz;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_storage.wgsl.expected.ir.msl
index 1c161a2..7e5cbae 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_storage.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void f(const constant half3x4* u [[buffer(0)]], device half3x4* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   (*tint_module_vars.s) = (*tint_module_vars.u);
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0].ywxz;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 59bb31a..518ba48 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 }
 kernel void f(const constant float3x4* m [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.m=m, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=m, .counter=(&counter)};
   const constant float3x4* const p_m = tint_module_vars.m;
   const constant float4* const p_m_i = (&(*p_m)[i(tint_module_vars)]);
   float3x4 const l_m = (*p_m);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_fn.wgsl.expected.ir.msl
index c2e4ef5..ed090b1 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_fn.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 void c(float f) {
 }
 kernel void f(const constant float3x4* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[1]);
   b((*tint_module_vars.u)[1].ywxz);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_private.wgsl.expected.ir.msl
index 820fdbe..204696e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_private.wgsl.expected.ir.msl
@@ -7,7 +7,7 @@
 
 kernel void f(const constant float3x4* u [[buffer(0)]]) {
   thread float3x4 p = float3x4(0.0f);
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0].ywxz;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_storage.wgsl.expected.ir.msl
index 709265f..0d3788c 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_storage.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void f(const constant float3x4* u [[buffer(0)]], device float3x4* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   (*tint_module_vars.s) = (*tint_module_vars.u);
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0].ywxz;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 2862bdb..47d3aff 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 }
 kernel void f(const constant half4x2* m [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.m=m, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=m, .counter=(&counter)};
   const constant half4x2* const p_m = tint_module_vars.m;
   const constant half2* const p_m_i = (&(*p_m)[i(tint_module_vars)]);
   half4x2 const l_m = (*p_m);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_fn.wgsl.expected.ir.msl
index b85213c..e2ca34b 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_fn.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 void c(half f) {
 }
 kernel void f(const constant half4x2* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[1]);
   b((*tint_module_vars.u)[1].yx);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_private.wgsl.expected.ir.msl
index 6a9f6f0..98da938 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_private.wgsl.expected.ir.msl
@@ -7,7 +7,7 @@
 
 kernel void f(const constant half4x2* u [[buffer(0)]]) {
   thread half4x2 p = half4x2(0.0h);
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0].yx;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_storage.wgsl.expected.ir.msl
index 9c8ca1c..bac8e26 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_storage.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void f(const constant half4x2* u [[buffer(0)]], device half4x2* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   (*tint_module_vars.s) = (*tint_module_vars.u);
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0].yx;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index bbd0f74..6f7e07d 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 }
 kernel void f(const constant float4x2* m [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.m=m, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=m, .counter=(&counter)};
   const constant float4x2* const p_m = tint_module_vars.m;
   const constant float2* const p_m_i = (&(*p_m)[i(tint_module_vars)]);
   float4x2 const l_m = (*p_m);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_fn.wgsl.expected.ir.msl
index 2928ebf..7e88410 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_fn.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 void c(float f) {
 }
 kernel void f(const constant float4x2* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[1]);
   b((*tint_module_vars.u)[1].yx);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_private.wgsl.expected.ir.msl
index 5c68541..7531bc8 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_private.wgsl.expected.ir.msl
@@ -7,7 +7,7 @@
 
 kernel void f(const constant float4x2* u [[buffer(0)]]) {
   thread float4x2 p = float4x2(0.0f);
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0].yx;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_storage.wgsl.expected.ir.msl
index 776bc7d..f03aacf 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_storage.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void f(const constant float4x2* u [[buffer(0)]], device float4x2* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   (*tint_module_vars.s) = (*tint_module_vars.u);
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0].yx;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index dc9211c..a1d953a 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 }
 kernel void f(const constant half4x3* m [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.m=m, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=m, .counter=(&counter)};
   const constant half4x3* const p_m = tint_module_vars.m;
   const constant half3* const p_m_i = (&(*p_m)[i(tint_module_vars)]);
   half4x3 const l_m = (*p_m);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_fn.wgsl.expected.ir.msl
index 398f88b..1693e1d 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_fn.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 void c(half f) {
 }
 kernel void f(const constant half4x3* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[1]);
   b((*tint_module_vars.u)[1].zxy);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_private.wgsl.expected.ir.msl
index 3a3d966..d0a3735 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_private.wgsl.expected.ir.msl
@@ -7,7 +7,7 @@
 
 kernel void f(const constant half4x3* u [[buffer(0)]]) {
   thread half4x3 p = half4x3(0.0h);
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0].zxy;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_storage.wgsl.expected.ir.msl
index 0840a07..f2a5f82 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_storage.wgsl.expected.ir.msl
@@ -12,7 +12,7 @@
   (*target)[3u] = value_param[3u];
 }
 kernel void f(const constant half4x3* u [[buffer(0)]], device half4x3* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   tint_store_and_preserve_padding(tint_module_vars.s, (*tint_module_vars.u));
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0].zxy;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 6516037..3c75994 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 }
 kernel void f(const constant float4x3* m [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.m=m, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=m, .counter=(&counter)};
   const constant float4x3* const p_m = tint_module_vars.m;
   const constant float3* const p_m_i = (&(*p_m)[i(tint_module_vars)]);
   float4x3 const l_m = (*p_m);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_fn.wgsl.expected.ir.msl
index 9f85d72..d0f3949 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_fn.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 void c(float f) {
 }
 kernel void f(const constant float4x3* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[1]);
   b((*tint_module_vars.u)[1].zxy);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_private.wgsl.expected.ir.msl
index 3000982..0e26048 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_private.wgsl.expected.ir.msl
@@ -7,7 +7,7 @@
 
 kernel void f(const constant float4x3* u [[buffer(0)]]) {
   thread float4x3 p = float4x3(0.0f);
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0].zxy;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_storage.wgsl.expected.ir.msl
index 7df73c1..5dbfa50 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_storage.wgsl.expected.ir.msl
@@ -12,7 +12,7 @@
   (*target)[3u] = value_param[3u];
 }
 kernel void f(const constant float4x3* u [[buffer(0)]], device float4x3* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   tint_store_and_preserve_padding(tint_module_vars.s, (*tint_module_vars.u));
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0].zxy;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index f9d687c..1743eb5 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 }
 kernel void f(const constant half4x4* m [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.m=m, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=m, .counter=(&counter)};
   const constant half4x4* const p_m = tint_module_vars.m;
   const constant half4* const p_m_i = (&(*p_m)[i(tint_module_vars)]);
   half4x4 const l_m = (*p_m);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_fn.wgsl.expected.ir.msl
index d6675da..77e0b28 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_fn.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 void c(half f) {
 }
 kernel void f(const constant half4x4* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[1]);
   b((*tint_module_vars.u)[1].ywxz);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_private.wgsl.expected.ir.msl
index 77a0764..f9734d6 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_private.wgsl.expected.ir.msl
@@ -7,7 +7,7 @@
 
 kernel void f(const constant half4x4* u [[buffer(0)]]) {
   thread half4x4 p = half4x4(0.0h);
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0].ywxz;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_storage.wgsl.expected.ir.msl
index 96f3eb6..59d1aca 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_storage.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void f(const constant half4x4* u [[buffer(0)]], device half4x4* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   (*tint_module_vars.s) = (*tint_module_vars.u);
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0].ywxz;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index aa9c4df..afd516f 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 }
 kernel void f(const constant float4x4* m [[buffer(0)]]) {
   thread int counter = 0;
-  tint_module_vars_struct const tint_module_vars = {.m=m, .counter=(&counter)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=m, .counter=(&counter)};
   const constant float4x4* const p_m = tint_module_vars.m;
   const constant float4* const p_m_i = (&(*p_m)[i(tint_module_vars)]);
   float4x4 const l_m = (*p_m);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_fn.wgsl.expected.ir.msl
index 8b51e8a..5f01ca5 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_fn.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
 void c(float f) {
 }
 kernel void f(const constant float4x4* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   a((*tint_module_vars.u));
   b((*tint_module_vars.u)[1]);
   b((*tint_module_vars.u)[1].ywxz);
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_private.wgsl.expected.ir.msl
index 270763c..0c17e5c 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_private.wgsl.expected.ir.msl
@@ -7,7 +7,7 @@
 
 kernel void f(const constant float4x4* u [[buffer(0)]]) {
   thread float4x4 p = float4x4(0.0f);
-  tint_module_vars_struct const tint_module_vars = {.u=u, .p=(&p)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .p=(&p)};
   (*tint_module_vars.p) = (*tint_module_vars.u);
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.p)[1] = (*tint_module_vars.u)[0].ywxz;
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_storage.wgsl.expected.ir.msl
index cefcb4b..70d985c 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_storage.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void f(const constant float4x4* u [[buffer(0)]], device float4x4* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   (*tint_module_vars.s) = (*tint_module_vars.u);
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0];
   (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0].ywxz;
diff --git a/test/tint/buffer/uniform/types/f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/f16.wgsl.expected.ir.msl
index c5b30d2..d76ba74 100644
--- a/test/tint/buffer/uniform/types/f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/f16.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant half* u [[buffer(0)]], device half* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   half const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/buffer/uniform/types/f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/f32.wgsl.expected.ir.msl
index dc05668..ae7fc73 100644
--- a/test/tint/buffer/uniform/types/f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/f32.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant float* u [[buffer(0)]], device float* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   float const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/buffer/uniform/types/i32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/i32.wgsl.expected.ir.msl
index dd0fc8a..e15c3ce 100644
--- a/test/tint/buffer/uniform/types/i32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/i32.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant int* u [[buffer(0)]], device int* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   int const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/buffer/uniform/types/mat2x2_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat2x2_f16.wgsl.expected.ir.msl
index a05cbb4..ecdafdd 100644
--- a/test/tint/buffer/uniform/types/mat2x2_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat2x2_f16.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant half2x2* u [[buffer(0)]], device half2x2* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   half2x2 const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/buffer/uniform/types/mat2x2_f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat2x2_f32.wgsl.expected.ir.msl
index 9f0111e..cd7b9c7 100644
--- a/test/tint/buffer/uniform/types/mat2x2_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat2x2_f32.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant float2x2* u [[buffer(0)]], device float2x2* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   float2x2 const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/buffer/uniform/types/mat2x3_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat2x3_f16.wgsl.expected.ir.msl
index 2effcd6..d5c9e13 100644
--- a/test/tint/buffer/uniform/types/mat2x3_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat2x3_f16.wgsl.expected.ir.msl
@@ -10,7 +10,7 @@
   (*target)[1u] = value_param[1u];
 }
 kernel void tint_symbol(const constant half2x3* u [[buffer(0)]], device half2x3* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   half2x3 const x = (*tint_module_vars.u);
   tint_store_and_preserve_padding(tint_module_vars.s, x);
 }
diff --git a/test/tint/buffer/uniform/types/mat2x3_f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat2x3_f32.wgsl.expected.ir.msl
index 19199b6..c9b514e 100644
--- a/test/tint/buffer/uniform/types/mat2x3_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat2x3_f32.wgsl.expected.ir.msl
@@ -10,7 +10,7 @@
   (*target)[1u] = value_param[1u];
 }
 kernel void tint_symbol(const constant float2x3* u [[buffer(0)]], device float2x3* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   float2x3 const x = (*tint_module_vars.u);
   tint_store_and_preserve_padding(tint_module_vars.s, x);
 }
diff --git a/test/tint/buffer/uniform/types/mat2x4_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat2x4_f16.wgsl.expected.ir.msl
index 2b3cf8f..702e24a 100644
--- a/test/tint/buffer/uniform/types/mat2x4_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat2x4_f16.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant half2x4* u [[buffer(0)]], device half2x4* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   half2x4 const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/buffer/uniform/types/mat2x4_f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat2x4_f32.wgsl.expected.ir.msl
index 80b5744..1b2bd23 100644
--- a/test/tint/buffer/uniform/types/mat2x4_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat2x4_f32.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant float2x4* u [[buffer(0)]], device float2x4* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   float2x4 const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/buffer/uniform/types/mat3x2_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat3x2_f16.wgsl.expected.ir.msl
index afe4fc4..5a84915 100644
--- a/test/tint/buffer/uniform/types/mat3x2_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat3x2_f16.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant half3x2* u [[buffer(0)]], device half3x2* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   half3x2 const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/buffer/uniform/types/mat3x2_f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat3x2_f32.wgsl.expected.ir.msl
index 4853faa..0b78d97 100644
--- a/test/tint/buffer/uniform/types/mat3x2_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat3x2_f32.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant float3x2* u [[buffer(0)]], device float3x2* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   float3x2 const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/buffer/uniform/types/mat3x3_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat3x3_f16.wgsl.expected.ir.msl
index efacca3..33102d0 100644
--- a/test/tint/buffer/uniform/types/mat3x3_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat3x3_f16.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
   (*target)[2u] = value_param[2u];
 }
 kernel void tint_symbol(const constant half3x3* u [[buffer(0)]], device half3x3* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   half3x3 const x = (*tint_module_vars.u);
   tint_store_and_preserve_padding(tint_module_vars.s, x);
 }
diff --git a/test/tint/buffer/uniform/types/mat3x3_f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat3x3_f32.wgsl.expected.ir.msl
index 5e09f19..6befcbd 100644
--- a/test/tint/buffer/uniform/types/mat3x3_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat3x3_f32.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
   (*target)[2u] = value_param[2u];
 }
 kernel void tint_symbol(const constant float3x3* u [[buffer(0)]], device float3x3* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   float3x3 const x = (*tint_module_vars.u);
   tint_store_and_preserve_padding(tint_module_vars.s, x);
 }
diff --git a/test/tint/buffer/uniform/types/mat3x4_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat3x4_f16.wgsl.expected.ir.msl
index 957fccc..26e1f6c 100644
--- a/test/tint/buffer/uniform/types/mat3x4_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat3x4_f16.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant half3x4* u [[buffer(0)]], device half3x4* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   half3x4 const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/buffer/uniform/types/mat3x4_f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat3x4_f32.wgsl.expected.ir.msl
index 9caac90..26afe70 100644
--- a/test/tint/buffer/uniform/types/mat3x4_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat3x4_f32.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant float3x4* u [[buffer(0)]], device float3x4* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   float3x4 const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/buffer/uniform/types/mat4x2_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat4x2_f16.wgsl.expected.ir.msl
index 7895c94..b5c8bd8 100644
--- a/test/tint/buffer/uniform/types/mat4x2_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat4x2_f16.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant half4x2* u [[buffer(0)]], device half4x2* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   half4x2 const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/buffer/uniform/types/mat4x2_f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat4x2_f32.wgsl.expected.ir.msl
index 023b586..88cd34c 100644
--- a/test/tint/buffer/uniform/types/mat4x2_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat4x2_f32.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant float4x2* u [[buffer(0)]], device float4x2* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   float4x2 const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/buffer/uniform/types/mat4x3_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat4x3_f16.wgsl.expected.ir.msl
index 6ffcff3..7992e86f 100644
--- a/test/tint/buffer/uniform/types/mat4x3_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat4x3_f16.wgsl.expected.ir.msl
@@ -12,7 +12,7 @@
   (*target)[3u] = value_param[3u];
 }
 kernel void tint_symbol(const constant half4x3* u [[buffer(0)]], device half4x3* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   half4x3 const x = (*tint_module_vars.u);
   tint_store_and_preserve_padding(tint_module_vars.s, x);
 }
diff --git a/test/tint/buffer/uniform/types/mat4x3_f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat4x3_f32.wgsl.expected.ir.msl
index 3dd2c1d..5f3ab51 100644
--- a/test/tint/buffer/uniform/types/mat4x3_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat4x3_f32.wgsl.expected.ir.msl
@@ -12,7 +12,7 @@
   (*target)[3u] = value_param[3u];
 }
 kernel void tint_symbol(const constant float4x3* u [[buffer(0)]], device float4x3* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   float4x3 const x = (*tint_module_vars.u);
   tint_store_and_preserve_padding(tint_module_vars.s, x);
 }
diff --git a/test/tint/buffer/uniform/types/mat4x4_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat4x4_f16.wgsl.expected.ir.msl
index e8c4773..2358b94 100644
--- a/test/tint/buffer/uniform/types/mat4x4_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat4x4_f16.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant half4x4* u [[buffer(0)]], device half4x4* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   half4x4 const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/buffer/uniform/types/mat4x4_f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat4x4_f32.wgsl.expected.ir.msl
index ba36e70..0ac1bc9 100644
--- a/test/tint/buffer/uniform/types/mat4x4_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat4x4_f32.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant float4x4* u [[buffer(0)]], device float4x4* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   float4x4 const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.ir.msl
index a238665..173c33b 100644
--- a/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.ir.msl
@@ -22,7 +22,7 @@
   tint_store_and_preserve_padding((&(*target).inner), value_param.inner);
 }
 kernel void tint_symbol(const constant S* u [[buffer(0)]], device S* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   S const x = (*tint_module_vars.u);
   tint_store_and_preserve_padding(tint_module_vars.s, x);
 }
diff --git a/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.ir.msl
index bf9bb49..4c72a30 100644
--- a/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.ir.msl
@@ -22,7 +22,7 @@
   tint_store_and_preserve_padding((&(*target).inner), value_param.inner);
 }
 kernel void tint_symbol(const constant S* u [[buffer(0)]], device S* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   S const x = (*tint_module_vars.u);
   tint_store_and_preserve_padding(tint_module_vars.s, x);
 }
diff --git a/test/tint/buffer/uniform/types/u32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/u32.wgsl.expected.ir.msl
index 972a627..0324b85 100644
--- a/test/tint/buffer/uniform/types/u32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/u32.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant uint* u [[buffer(0)]], device uint* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   uint const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/buffer/uniform/types/vec2_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/vec2_f16.wgsl.expected.ir.msl
index 57ff3e9..dc5324c 100644
--- a/test/tint/buffer/uniform/types/vec2_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/vec2_f16.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant half2* u [[buffer(0)]], device half2* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   half2 const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/buffer/uniform/types/vec2_f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/vec2_f32.wgsl.expected.ir.msl
index 8a0d9a6..da1ca0c 100644
--- a/test/tint/buffer/uniform/types/vec2_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/vec2_f32.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant float2* u [[buffer(0)]], device float2* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   float2 const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/buffer/uniform/types/vec2_i32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/vec2_i32.wgsl.expected.ir.msl
index 04f2a65..f3ed80a 100644
--- a/test/tint/buffer/uniform/types/vec2_i32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/vec2_i32.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant int2* u [[buffer(0)]], device int2* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   int2 const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/buffer/uniform/types/vec2_u32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/vec2_u32.wgsl.expected.ir.msl
index db64177..630e3b4 100644
--- a/test/tint/buffer/uniform/types/vec2_u32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/vec2_u32.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant uint2* u [[buffer(0)]], device uint2* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   uint2 const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/buffer/uniform/types/vec3_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/vec3_f16.wgsl.expected.ir.msl
index 944e852..6ff8e52 100644
--- a/test/tint/buffer/uniform/types/vec3_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/vec3_f16.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant half3* u [[buffer(0)]], device half3* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   half3 const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/buffer/uniform/types/vec3_f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/vec3_f32.wgsl.expected.ir.msl
index 0ac2e48..106f968 100644
--- a/test/tint/buffer/uniform/types/vec3_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/vec3_f32.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant float3* u [[buffer(0)]], device float3* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   float3 const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/buffer/uniform/types/vec3_i32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/vec3_i32.wgsl.expected.ir.msl
index c74f20c..a823e97 100644
--- a/test/tint/buffer/uniform/types/vec3_i32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/vec3_i32.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant int3* u [[buffer(0)]], device int3* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   int3 const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/buffer/uniform/types/vec3_u32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/vec3_u32.wgsl.expected.ir.msl
index 83d9d58..31e9fd5 100644
--- a/test/tint/buffer/uniform/types/vec3_u32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/vec3_u32.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant uint3* u [[buffer(0)]], device uint3* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   uint3 const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/buffer/uniform/types/vec4_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/vec4_f16.wgsl.expected.ir.msl
index 8472176..3d9bc61 100644
--- a/test/tint/buffer/uniform/types/vec4_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/vec4_f16.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant half4* u [[buffer(0)]], device half4* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   half4 const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/buffer/uniform/types/vec4_f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/vec4_f32.wgsl.expected.ir.msl
index 7fc7b21..4a2d36e 100644
--- a/test/tint/buffer/uniform/types/vec4_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/vec4_f32.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant float4* u [[buffer(0)]], device float4* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   float4 const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/buffer/uniform/types/vec4_i32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/vec4_i32.wgsl.expected.ir.msl
index 4708c30..0b7f3e3 100644
--- a/test/tint/buffer/uniform/types/vec4_i32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/vec4_i32.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant int4* u [[buffer(0)]], device int4* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   int4 const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/buffer/uniform/types/vec4_u32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/vec4_u32.wgsl.expected.ir.msl
index 2de3973..ce4e9d0 100644
--- a/test/tint/buffer/uniform/types/vec4_u32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/vec4_u32.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 };
 
 kernel void tint_symbol(const constant uint4* u [[buffer(0)]], device uint4* s [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u, .s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
   uint4 const x = (*tint_module_vars.u);
   (*tint_module_vars.s) = x;
 }
diff --git a/test/tint/bug/chromium/1430309.wgsl.expected.ir.msl b/test/tint/bug/chromium/1430309.wgsl.expected.ir.msl
index 20feeef..3a2143f 100644
--- a/test/tint/bug/chromium/1430309.wgsl.expected.ir.msl
+++ b/test/tint/bug/chromium/1430309.wgsl.expected.ir.msl
@@ -15,6 +15,6 @@
 fragment float4 tint_symbol() {
   thread frexp_result_f32 a = {};
   thread frexp_result_f32_1 b = frexp_result_f32_1{.fract=0.5f, .exp=1};
-  tint_module_vars_struct const tint_module_vars = {.a=(&a), .b=(&b)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=(&a), .b=(&b)};
   return float4((*tint_module_vars.a).f, (*tint_module_vars.b).fract, 0.0f, 0.0f);
 }
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/function.wgsl.expected.ir.msl b/test/tint/bug/fxc/dyn_array_idx/read/function.wgsl.expected.ir.msl
index 93e2b199..dc9067f 100644
--- a/test/tint/bug/fxc/dyn_array_idx/read/function.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/dyn_array_idx/read/function.wgsl.expected.ir.msl
@@ -27,7 +27,7 @@
 };
 
 kernel void f(const constant UBO* ubo [[buffer(0)]], device Result* result [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.ubo=ubo, .result=result};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.ubo=ubo, .result=result};
   S s = {};
   (*tint_module_vars.result).out = s.data[(*tint_module_vars.ubo).dynamic_idx];
 }
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/private.wgsl.expected.ir.msl b/test/tint/bug/fxc/dyn_array_idx/read/private.wgsl.expected.ir.msl
index c572b13..2e1ae86 100644
--- a/test/tint/bug/fxc/dyn_array_idx/read/private.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/dyn_array_idx/read/private.wgsl.expected.ir.msl
@@ -29,6 +29,6 @@
 
 kernel void f(const constant UBO* ubo [[buffer(0)]], device Result* result [[buffer(1)]]) {
   thread S s = {};
-  tint_module_vars_struct const tint_module_vars = {.ubo=ubo, .result=result, .s=(&s)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.ubo=ubo, .result=result, .s=(&s)};
   (*tint_module_vars.result).out = (*tint_module_vars.s).data[(*tint_module_vars.ubo).dynamic_idx];
 }
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.ir.msl b/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.ir.msl
index b4ba2a1..b6f0210 100644
--- a/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.ir.msl
@@ -28,6 +28,6 @@
 };
 
 kernel void f(const constant UBO* ubo [[buffer(0)]], device Result* result [[buffer(2)]], device SSBO* ssbo [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.ubo=ubo, .result=result, .ssbo=ssbo};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.ubo=ubo, .result=result, .ssbo=ssbo};
   (*tint_module_vars.result).out = (*tint_module_vars.ssbo).data[(*tint_module_vars.ubo).dynamic_idx];
 }
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.ir.msl b/test/tint/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.ir.msl
index 27a2233..7595941 100644
--- a/test/tint/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.ir.msl
@@ -25,6 +25,6 @@
 };
 
 kernel void f(const constant UBO* ubo [[buffer(0)]], device Result* result [[buffer(2)]]) {
-  tint_module_vars_struct const tint_module_vars = {.ubo=ubo, .result=result};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.ubo=ubo, .result=result};
   (*tint_module_vars.result).out = (*tint_module_vars.ubo).data[(*tint_module_vars.ubo).dynamic_idx][0u];
 }
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/function.wgsl.expected.ir.msl b/test/tint/bug/fxc/dyn_array_idx/write/function.wgsl.expected.ir.msl
index e6222b9..e964d05 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/function.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/function.wgsl.expected.ir.msl
@@ -27,7 +27,7 @@
 };
 
 kernel void f(const constant UBO* ubo [[buffer(0)]], device Result* result [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.ubo=ubo, .result=result};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.ubo=ubo, .result=result};
   S s = {};
   s.data[(*tint_module_vars.ubo).dynamic_idx] = 1;
   (*tint_module_vars.result).out = s.data[3];
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.ir.msl b/test/tint/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.ir.msl
index ce9dbea..9fe2d93 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.ir.msl
@@ -30,7 +30,7 @@
   (*p).data[(*tint_module_vars.ubo).dynamic_idx] = 1;
 }
 kernel void f(const constant UBO* ubo [[buffer(0)]], device Result* result [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.ubo=ubo, .result=result};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.ubo=ubo, .result=result};
   S s = {};
   x((&s), tint_module_vars);
   (*tint_module_vars.result).out = s.data[3];
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/private.wgsl.expected.ir.msl b/test/tint/bug/fxc/dyn_array_idx/write/private.wgsl.expected.ir.msl
index ddcdabe..1a982b3 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/private.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/private.wgsl.expected.ir.msl
@@ -29,7 +29,7 @@
 
 kernel void f(const constant UBO* ubo [[buffer(0)]], device Result* result [[buffer(1)]]) {
   thread S s = {};
-  tint_module_vars_struct const tint_module_vars = {.ubo=ubo, .result=result, .s=(&s)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.ubo=ubo, .result=result, .s=(&s)};
   (*tint_module_vars.s).data[(*tint_module_vars.ubo).dynamic_idx] = 1;
   (*tint_module_vars.result).out = (*tint_module_vars.s).data[3];
 }
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.ir.msl b/test/tint/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.ir.msl
index a7bfe01..0e31775 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.ir.msl
@@ -32,7 +32,7 @@
 }
 kernel void f(const constant UBO* ubo [[buffer(0)]], device Result* result [[buffer(1)]]) {
   thread S s = {};
-  tint_module_vars_struct const tint_module_vars = {.ubo=ubo, .result=result, .s=(&s)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.ubo=ubo, .result=result, .s=(&s)};
   x(tint_module_vars.s, tint_module_vars);
   (*tint_module_vars.result).out = (*tint_module_vars.s).data[3];
 }
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.ir.msl b/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.ir.msl
index 56f87ff..39dd126 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.ir.msl
@@ -28,7 +28,7 @@
 };
 
 kernel void f(const constant UBO* ubo [[buffer(0)]], device Result* result [[buffer(2)]], device SSBO* ssbo [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.ubo=ubo, .result=result, .ssbo=ssbo};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.ubo=ubo, .result=result, .ssbo=ssbo};
   (*tint_module_vars.ssbo).data[(*tint_module_vars.ubo).dynamic_idx] = 1;
   (*tint_module_vars.result).out = (*tint_module_vars.ssbo).data[3];
 }
diff --git a/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_loop.wgsl.expected.ir.msl b/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_loop.wgsl.expected.ir.msl
index bc75e3e..cced0a6 100644
--- a/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_loop.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_loop.wgsl.expected.ir.msl
@@ -29,7 +29,7 @@
   thread int3 v3i = 0;
   thread uint4 v4u = 0u;
   thread bool2 v2b = false;
-  tint_module_vars_struct const tint_module_vars = {.v2f=(&v2f), .v3i=(&v3i), .v4u=(&v4u), .v2b=(&v2b)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.v2f=(&v2f), .v3i=(&v3i), .v4u=(&v4u), .v2b=(&v2b)};
   {
     int i = 0;
     while(true) {
diff --git a/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_no_loop.wgsl.expected.ir.msl b/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_no_loop.wgsl.expected.ir.msl
index eddd698..410a3d3 100644
--- a/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_no_loop.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_no_loop.wgsl.expected.ir.msl
@@ -19,7 +19,7 @@
   thread int3 v3i = 0;
   thread uint4 v4u = 0u;
   thread bool2 v2b = false;
-  tint_module_vars_struct const tint_module_vars = {.v2f=(&v2f), .v3i=(&v3i), .v4u=(&v4u), .v2b=(&v2b)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.v2f=(&v2f), .v3i=(&v3i), .v4u=(&v4u), .v2b=(&v2b)};
   {
     int i = 0;
     while(true) {
diff --git a/test/tint/bug/tint/1086.wgsl.expected.ir.msl b/test/tint/bug/tint/1086.wgsl.expected.ir.msl
index 91474dc..7976930 100644
--- a/test/tint/bug/tint/1086.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1086.wgsl.expected.ir.msl
@@ -12,6 +12,6 @@
 }
 fragment void f() {
   thread float v = 0.0f;
-  tint_module_vars_struct const tint_module_vars = {.v=(&v)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.v=(&v)};
   g(tint_module_vars);
 }
diff --git a/test/tint/bug/tint/1369.wgsl.expected.ir.msl b/test/tint/bug/tint/1369.wgsl.expected.ir.msl
index 7aa3f8d..3b26d33 100644
--- a/test/tint/bug/tint/1369.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1369.wgsl.expected.ir.msl
@@ -10,7 +10,7 @@
 }
 fragment void f() {
   thread bool continue_execution = true;
-  tint_module_vars_struct const tint_module_vars = {.continue_execution=(&continue_execution)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.continue_execution=(&continue_execution)};
   bool v = call_discard(tint_module_vars);
   bool also_unreachable = false;
   if (!((*tint_module_vars.continue_execution))) {
diff --git a/test/tint/bug/tint/1385.wgsl.expected.ir.msl b/test/tint/bug/tint/1385.wgsl.expected.ir.msl
index 49062f4..3748831 100644
--- a/test/tint/bug/tint/1385.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1385.wgsl.expected.ir.msl
@@ -20,6 +20,6 @@
   return (*tint_module_vars.data)[0];
 }
 kernel void tint_symbol(const device tint_array<int, 1>* data [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.data=data};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.data=data};
   foo(tint_module_vars);
 }
diff --git a/test/tint/bug/tint/1509.wgsl.expected.ir.msl b/test/tint/bug/tint/1509.wgsl.expected.ir.msl
index 0f0cce6..6fd018b 100644
--- a/test/tint/bug/tint/1509.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1509.wgsl.expected.ir.msl
@@ -3008,6 +3008,6 @@
   thread uint v997 = 0u;
   thread uint v998 = 0u;
   thread uint v999 = 0u;
-  tint_module_vars_struct const tint_module_vars = {.v0=(&v0), .v1=(&v1), .v2=(&v2), .v3=(&v3), .v4=(&v4), .v5=(&v5), .v6=(&v6), .v7=(&v7), .v8=(&v8), .v9=(&v9), .v10=(&v10), .v11=(&v11), .v12=(&v12), .v13=(&v13), .v14=(&v14), .v15=(&v15), .v16=(&v16), .v17=(&v17), .v18=(&v18), .v19=(&v19), .v20=(&v20), .v21=(&v21), .v22=(&v22), .v23=(&v23), .v24=(&v24), .v25=(&v25), .v26=(&v26), .v27=(&v27), .v28=(&v28), .v29=(&v29), .v30=(&v30), .v31=(&v31), .v32=(&v32), .v33=(&v33), .v34=(&v34), .v35=(&v35), .v36=(&v36), .v37=(&v37), .v38=(&v38), .v39=(&v39), .v40=(&v40), .v41=(&v41), .v42=(&v42), .v43=(&v43), .v44=(&v44), .v45=(&v45), .v46=(&v46), .v47=(&v47), .v48=(&v48), .v49=(&v49), .v50=(&v50), .v51=(&v51), .v52=(&v52), .v53=(&v53), .v54=(&v54), .v55=(&v55), .v56=(&v56), .v57=(&v57), .v58=(&v58), .v59=(&v59), .v60=(&v60), .v61=(&v61), .v62=(&v62), .v63=(&v63), .v64=(&v64), .v65=(&v65), .v66=(&v66), .v67=(&v67), .v68=(&v68), .v69=(&v69), .v70=(&v70), .v71=(&v71), .v72=(&v72), .v73=(&v73), .v74=(&v74), .v75=(&v75), .v76=(&v76), .v77=(&v77), .v78=(&v78), .v79=(&v79), .v80=(&v80), .v81=(&v81), .v82=(&v82), .v83=(&v83), .v84=(&v84), .v85=(&v85), .v86=(&v86), .v87=(&v87), .v88=(&v88), .v89=(&v89), .v90=(&v90), .v91=(&v91), .v92=(&v92), .v93=(&v93), .v94=(&v94), .v95=(&v95), .v96=(&v96), .v97=(&v97), .v98=(&v98), .v99=(&v99), .v100=(&v100), .v101=(&v101), .v102=(&v102), .v103=(&v103), .v104=(&v104), .v105=(&v105), .v106=(&v106), .v107=(&v107), .v108=(&v108), .v109=(&v109), .v110=(&v110), .v111=(&v111), .v112=(&v112), .v113=(&v113), .v114=(&v114), .v115=(&v115), .v116=(&v116), .v117=(&v117), .v118=(&v118), .v119=(&v119), .v120=(&v120), .v121=(&v121), .v122=(&v122), .v123=(&v123), .v124=(&v124), .v125=(&v125), .v126=(&v126), .v127=(&v127), .v128=(&v128), .v129=(&v129), .v130=(&v130), .v131=(&v131), .v132=(&v132), .v133=(&v133), .v134=(&v134), .v135=(&v135), .v136=(&v136), .v137=(&v137), .v138=(&v138), .v139=(&v139), .v140=(&v140), .v141=(&v141), .v142=(&v142), .v143=(&v143), .v144=(&v144), .v145=(&v145), .v146=(&v146), .v147=(&v147), .v148=(&v148), .v149=(&v149), .v150=(&v150), .v151=(&v151), .v152=(&v152), .v153=(&v153), .v154=(&v154), .v155=(&v155), .v156=(&v156), .v157=(&v157), .v158=(&v158), .v159=(&v159), .v160=(&v160), .v161=(&v161), .v162=(&v162), .v163=(&v163), .v164=(&v164), .v165=(&v165), .v166=(&v166), .v167=(&v167), .v168=(&v168), .v169=(&v169), .v170=(&v170), .v171=(&v171), .v172=(&v172), .v173=(&v173), .v174=(&v174), .v175=(&v175), .v176=(&v176), .v177=(&v177), .v178=(&v178), .v179=(&v179), .v180=(&v180), .v181=(&v181), .v182=(&v182), .v183=(&v183), .v184=(&v184), .v185=(&v185), .v186=(&v186), .v187=(&v187), .v188=(&v188), .v189=(&v189), .v190=(&v190), .v191=(&v191), .v192=(&v192), .v193=(&v193), .v194=(&v194), .v195=(&v195), .v196=(&v196), .v197=(&v197), .v198=(&v198), .v199=(&v199), .v200=(&v200), .v201=(&v201), .v202=(&v202), .v203=(&v203), .v204=(&v204), .v205=(&v205), .v206=(&v206), .v207=(&v207), .v208=(&v208), .v209=(&v209), .v210=(&v210), .v211=(&v211), .v212=(&v212), .v213=(&v213), .v214=(&v214), .v215=(&v215), .v216=(&v216), .v217=(&v217), .v218=(&v218), .v219=(&v219), .v220=(&v220), .v221=(&v221), .v222=(&v222), .v223=(&v223), .v224=(&v224), .v225=(&v225), .v226=(&v226), .v227=(&v227), .v228=(&v228), .v229=(&v229), .v230=(&v230), .v231=(&v231), .v232=(&v232), .v233=(&v233), .v234=(&v234), .v235=(&v235), .v236=(&v236), .v237=(&v237), .v238=(&v238), .v239=(&v239), .v240=(&v240), .v241=(&v241), .v242=(&v242), .v243=(&v243), .v244=(&v244), .v245=(&v245), .v246=(&v246), .v247=(&v247), .v248=(&v248), .v249=(&v249), .v250=(&v250), .v251=(&v251), .v252=(&v252), .v253=(&v253), .v254=(&v254), .v255=(&v255), .v256=(&v256), .v257=(&v257), .v258=(&v258), .v259=(&v259), .v260=(&v260), .v261=(&v261), .v262=(&v262), .v263=(&v263), .v264=(&v264), .v265=(&v265), .v266=(&v266), .v267=(&v267), .v268=(&v268), .v269=(&v269), .v270=(&v270), .v271=(&v271), .v272=(&v272), .v273=(&v273), .v274=(&v274), .v275=(&v275), .v276=(&v276), .v277=(&v277), .v278=(&v278), .v279=(&v279), .v280=(&v280), .v281=(&v281), .v282=(&v282), .v283=(&v283), .v284=(&v284), .v285=(&v285), .v286=(&v286), .v287=(&v287), .v288=(&v288), .v289=(&v289), .v290=(&v290), .v291=(&v291), .v292=(&v292), .v293=(&v293), .v294=(&v294), .v295=(&v295), .v296=(&v296), .v297=(&v297), .v298=(&v298), .v299=(&v299), .v300=(&v300), .v301=(&v301), .v302=(&v302), .v303=(&v303), .v304=(&v304), .v305=(&v305), .v306=(&v306), .v307=(&v307), .v308=(&v308), .v309=(&v309), .v310=(&v310), .v311=(&v311), .v312=(&v312), .v313=(&v313), .v314=(&v314), .v315=(&v315), .v316=(&v316), .v317=(&v317), .v318=(&v318), .v319=(&v319), .v320=(&v320), .v321=(&v321), .v322=(&v322), .v323=(&v323), .v324=(&v324), .v325=(&v325), .v326=(&v326), .v327=(&v327), .v328=(&v328), .v329=(&v329), .v330=(&v330), .v331=(&v331), .v332=(&v332), .v333=(&v333), .v334=(&v334), .v335=(&v335), .v336=(&v336), .v337=(&v337), .v338=(&v338), .v339=(&v339), .v340=(&v340), .v341=(&v341), .v342=(&v342), .v343=(&v343), .v344=(&v344), .v345=(&v345), .v346=(&v346), .v347=(&v347), .v348=(&v348), .v349=(&v349), .v350=(&v350), .v351=(&v351), .v352=(&v352), .v353=(&v353), .v354=(&v354), .v355=(&v355), .v356=(&v356), .v357=(&v357), .v358=(&v358), .v359=(&v359), .v360=(&v360), .v361=(&v361), .v362=(&v362), .v363=(&v363), .v364=(&v364), .v365=(&v365), .v366=(&v366), .v367=(&v367), .v368=(&v368), .v369=(&v369), .v370=(&v370), .v371=(&v371), .v372=(&v372), .v373=(&v373), .v374=(&v374), .v375=(&v375), .v376=(&v376), .v377=(&v377), .v378=(&v378), .v379=(&v379), .v380=(&v380), .v381=(&v381), .v382=(&v382), .v383=(&v383), .v384=(&v384), .v385=(&v385), .v386=(&v386), .v387=(&v387), .v388=(&v388), .v389=(&v389), .v390=(&v390), .v391=(&v391), .v392=(&v392), .v393=(&v393), .v394=(&v394), .v395=(&v395), .v396=(&v396), .v397=(&v397), .v398=(&v398), .v399=(&v399), .v400=(&v400), .v401=(&v401), .v402=(&v402), .v403=(&v403), .v404=(&v404), .v405=(&v405), .v406=(&v406), .v407=(&v407), .v408=(&v408), .v409=(&v409), .v410=(&v410), .v411=(&v411), .v412=(&v412), .v413=(&v413), .v414=(&v414), .v415=(&v415), .v416=(&v416), .v417=(&v417), .v418=(&v418), .v419=(&v419), .v420=(&v420), .v421=(&v421), .v422=(&v422), .v423=(&v423), .v424=(&v424), .v425=(&v425), .v426=(&v426), .v427=(&v427), .v428=(&v428), .v429=(&v429), .v430=(&v430), .v431=(&v431), .v432=(&v432), .v433=(&v433), .v434=(&v434), .v435=(&v435), .v436=(&v436), .v437=(&v437), .v438=(&v438), .v439=(&v439), .v440=(&v440), .v441=(&v441), .v442=(&v442), .v443=(&v443), .v444=(&v444), .v445=(&v445), .v446=(&v446), .v447=(&v447), .v448=(&v448), .v449=(&v449), .v450=(&v450), .v451=(&v451), .v452=(&v452), .v453=(&v453), .v454=(&v454), .v455=(&v455), .v456=(&v456), .v457=(&v457), .v458=(&v458), .v459=(&v459), .v460=(&v460), .v461=(&v461), .v462=(&v462), .v463=(&v463), .v464=(&v464), .v465=(&v465), .v466=(&v466), .v467=(&v467), .v468=(&v468), .v469=(&v469), .v470=(&v470), .v471=(&v471), .v472=(&v472), .v473=(&v473), .v474=(&v474), .v475=(&v475), .v476=(&v476), .v477=(&v477), .v478=(&v478), .v479=(&v479), .v480=(&v480), .v481=(&v481), .v482=(&v482), .v483=(&v483), .v484=(&v484), .v485=(&v485), .v486=(&v486), .v487=(&v487), .v488=(&v488), .v489=(&v489), .v490=(&v490), .v491=(&v491), .v492=(&v492), .v493=(&v493), .v494=(&v494), .v495=(&v495), .v496=(&v496), .v497=(&v497), .v498=(&v498), .v499=(&v499), .v500=(&v500), .v501=(&v501), .v502=(&v502), .v503=(&v503), .v504=(&v504), .v505=(&v505), .v506=(&v506), .v507=(&v507), .v508=(&v508), .v509=(&v509), .v510=(&v510), .v511=(&v511), .v512=(&v512), .v513=(&v513), .v514=(&v514), .v515=(&v515), .v516=(&v516), .v517=(&v517), .v518=(&v518), .v519=(&v519), .v520=(&v520), .v521=(&v521), .v522=(&v522), .v523=(&v523), .v524=(&v524), .v525=(&v525), .v526=(&v526), .v527=(&v527), .v528=(&v528), .v529=(&v529), .v530=(&v530), .v531=(&v531), .v532=(&v532), .v533=(&v533), .v534=(&v534), .v535=(&v535), .v536=(&v536), .v537=(&v537), .v538=(&v538), .v539=(&v539), .v540=(&v540), .v541=(&v541), .v542=(&v542), .v543=(&v543), .v544=(&v544), .v545=(&v545), .v546=(&v546), .v547=(&v547), .v548=(&v548), .v549=(&v549), .v550=(&v550), .v551=(&v551), .v552=(&v552), .v553=(&v553), .v554=(&v554), .v555=(&v555), .v556=(&v556), .v557=(&v557), .v558=(&v558), .v559=(&v559), .v560=(&v560), .v561=(&v561), .v562=(&v562), .v563=(&v563), .v564=(&v564), .v565=(&v565), .v566=(&v566), .v567=(&v567), .v568=(&v568), .v569=(&v569), .v570=(&v570), .v571=(&v571), .v572=(&v572), .v573=(&v573), .v574=(&v574), .v575=(&v575), .v576=(&v576), .v577=(&v577), .v578=(&v578), .v579=(&v579), .v580=(&v580), .v581=(&v581), .v582=(&v582), .v583=(&v583), .v584=(&v584), .v585=(&v585), .v586=(&v586), .v587=(&v587), .v588=(&v588), .v589=(&v589), .v590=(&v590), .v591=(&v591), .v592=(&v592), .v593=(&v593), .v594=(&v594), .v595=(&v595), .v596=(&v596), .v597=(&v597), .v598=(&v598), .v599=(&v599), .v600=(&v600), .v601=(&v601), .v602=(&v602), .v603=(&v603), .v604=(&v604), .v605=(&v605), .v606=(&v606), .v607=(&v607), .v608=(&v608), .v609=(&v609), .v610=(&v610), .v611=(&v611), .v612=(&v612), .v613=(&v613), .v614=(&v614), .v615=(&v615), .v616=(&v616), .v617=(&v617), .v618=(&v618), .v619=(&v619), .v620=(&v620), .v621=(&v621), .v622=(&v622), .v623=(&v623), .v624=(&v624), .v625=(&v625), .v626=(&v626), .v627=(&v627), .v628=(&v628), .v629=(&v629), .v630=(&v630), .v631=(&v631), .v632=(&v632), .v633=(&v633), .v634=(&v634), .v635=(&v635), .v636=(&v636), .v637=(&v637), .v638=(&v638), .v639=(&v639), .v640=(&v640), .v641=(&v641), .v642=(&v642), .v643=(&v643), .v644=(&v644), .v645=(&v645), .v646=(&v646), .v647=(&v647), .v648=(&v648), .v649=(&v649), .v650=(&v650), .v651=(&v651), .v652=(&v652), .v653=(&v653), .v654=(&v654), .v655=(&v655), .v656=(&v656), .v657=(&v657), .v658=(&v658), .v659=(&v659), .v660=(&v660), .v661=(&v661), .v662=(&v662), .v663=(&v663), .v664=(&v664), .v665=(&v665), .v666=(&v666), .v667=(&v667), .v668=(&v668), .v669=(&v669), .v670=(&v670), .v671=(&v671), .v672=(&v672), .v673=(&v673), .v674=(&v674), .v675=(&v675), .v676=(&v676), .v677=(&v677), .v678=(&v678), .v679=(&v679), .v680=(&v680), .v681=(&v681), .v682=(&v682), .v683=(&v683), .v684=(&v684), .v685=(&v685), .v686=(&v686), .v687=(&v687), .v688=(&v688), .v689=(&v689), .v690=(&v690), .v691=(&v691), .v692=(&v692), .v693=(&v693), .v694=(&v694), .v695=(&v695), .v696=(&v696), .v697=(&v697), .v698=(&v698), .v699=(&v699), .v700=(&v700), .v701=(&v701), .v702=(&v702), .v703=(&v703), .v704=(&v704), .v705=(&v705), .v706=(&v706), .v707=(&v707), .v708=(&v708), .v709=(&v709), .v710=(&v710), .v711=(&v711), .v712=(&v712), .v713=(&v713), .v714=(&v714), .v715=(&v715), .v716=(&v716), .v717=(&v717), .v718=(&v718), .v719=(&v719), .v720=(&v720), .v721=(&v721), .v722=(&v722), .v723=(&v723), .v724=(&v724), .v725=(&v725), .v726=(&v726), .v727=(&v727), .v728=(&v728), .v729=(&v729), .v730=(&v730), .v731=(&v731), .v732=(&v732), .v733=(&v733), .v734=(&v734), .v735=(&v735), .v736=(&v736), .v737=(&v737), .v738=(&v738), .v739=(&v739), .v740=(&v740), .v741=(&v741), .v742=(&v742), .v743=(&v743), .v744=(&v744), .v745=(&v745), .v746=(&v746), .v747=(&v747), .v748=(&v748), .v749=(&v749), .v750=(&v750), .v751=(&v751), .v752=(&v752), .v753=(&v753), .v754=(&v754), .v755=(&v755), .v756=(&v756), .v757=(&v757), .v758=(&v758), .v759=(&v759), .v760=(&v760), .v761=(&v761), .v762=(&v762), .v763=(&v763), .v764=(&v764), .v765=(&v765), .v766=(&v766), .v767=(&v767), .v768=(&v768), .v769=(&v769), .v770=(&v770), .v771=(&v771), .v772=(&v772), .v773=(&v773), .v774=(&v774), .v775=(&v775), .v776=(&v776), .v777=(&v777), .v778=(&v778), .v779=(&v779), .v780=(&v780), .v781=(&v781), .v782=(&v782), .v783=(&v783), .v784=(&v784), .v785=(&v785), .v786=(&v786), .v787=(&v787), .v788=(&v788), .v789=(&v789), .v790=(&v790), .v791=(&v791), .v792=(&v792), .v793=(&v793), .v794=(&v794), .v795=(&v795), .v796=(&v796), .v797=(&v797), .v798=(&v798), .v799=(&v799), .v800=(&v800), .v801=(&v801), .v802=(&v802), .v803=(&v803), .v804=(&v804), .v805=(&v805), .v806=(&v806), .v807=(&v807), .v808=(&v808), .v809=(&v809), .v810=(&v810), .v811=(&v811), .v812=(&v812), .v813=(&v813), .v814=(&v814), .v815=(&v815), .v816=(&v816), .v817=(&v817), .v818=(&v818), .v819=(&v819), .v820=(&v820), .v821=(&v821), .v822=(&v822), .v823=(&v823), .v824=(&v824), .v825=(&v825), .v826=(&v826), .v827=(&v827), .v828=(&v828), .v829=(&v829), .v830=(&v830), .v831=(&v831), .v832=(&v832), .v833=(&v833), .v834=(&v834), .v835=(&v835), .v836=(&v836), .v837=(&v837), .v838=(&v838), .v839=(&v839), .v840=(&v840), .v841=(&v841), .v842=(&v842), .v843=(&v843), .v844=(&v844), .v845=(&v845), .v846=(&v846), .v847=(&v847), .v848=(&v848), .v849=(&v849), .v850=(&v850), .v851=(&v851), .v852=(&v852), .v853=(&v853), .v854=(&v854), .v855=(&v855), .v856=(&v856), .v857=(&v857), .v858=(&v858), .v859=(&v859), .v860=(&v860), .v861=(&v861), .v862=(&v862), .v863=(&v863), .v864=(&v864), .v865=(&v865), .v866=(&v866), .v867=(&v867), .v868=(&v868), .v869=(&v869), .v870=(&v870), .v871=(&v871), .v872=(&v872), .v873=(&v873), .v874=(&v874), .v875=(&v875), .v876=(&v876), .v877=(&v877), .v878=(&v878), .v879=(&v879), .v880=(&v880), .v881=(&v881), .v882=(&v882), .v883=(&v883), .v884=(&v884), .v885=(&v885), .v886=(&v886), .v887=(&v887), .v888=(&v888), .v889=(&v889), .v890=(&v890), .v891=(&v891), .v892=(&v892), .v893=(&v893), .v894=(&v894), .v895=(&v895), .v896=(&v896), .v897=(&v897), .v898=(&v898), .v899=(&v899), .v900=(&v900), .v901=(&v901), .v902=(&v902), .v903=(&v903), .v904=(&v904), .v905=(&v905), .v906=(&v906), .v907=(&v907), .v908=(&v908), .v909=(&v909), .v910=(&v910), .v911=(&v911), .v912=(&v912), .v913=(&v913), .v914=(&v914), .v915=(&v915), .v916=(&v916), .v917=(&v917), .v918=(&v918), .v919=(&v919), .v920=(&v920), .v921=(&v921), .v922=(&v922), .v923=(&v923), .v924=(&v924), .v925=(&v925), .v926=(&v926), .v927=(&v927), .v928=(&v928), .v929=(&v929), .v930=(&v930), .v931=(&v931), .v932=(&v932), .v933=(&v933), .v934=(&v934), .v935=(&v935), .v936=(&v936), .v937=(&v937), .v938=(&v938), .v939=(&v939), .v940=(&v940), .v941=(&v941), .v942=(&v942), .v943=(&v943), .v944=(&v944), .v945=(&v945), .v946=(&v946), .v947=(&v947), .v948=(&v948), .v949=(&v949), .v950=(&v950), .v951=(&v951), .v952=(&v952), .v953=(&v953), .v954=(&v954), .v955=(&v955), .v956=(&v956), .v957=(&v957), .v958=(&v958), .v959=(&v959), .v960=(&v960), .v961=(&v961), .v962=(&v962), .v963=(&v963), .v964=(&v964), .v965=(&v965), .v966=(&v966), .v967=(&v967), .v968=(&v968), .v969=(&v969), .v970=(&v970), .v971=(&v971), .v972=(&v972), .v973=(&v973), .v974=(&v974), .v975=(&v975), .v976=(&v976), .v977=(&v977), .v978=(&v978), .v979=(&v979), .v980=(&v980), .v981=(&v981), .v982=(&v982), .v983=(&v983), .v984=(&v984), .v985=(&v985), .v986=(&v986), .v987=(&v987), .v988=(&v988), .v989=(&v989), .v990=(&v990), .v991=(&v991), .v992=(&v992), .v993=(&v993), .v994=(&v994), .v995=(&v995), .v996=(&v996), .v997=(&v997), .v998=(&v998), .v999=(&v999)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.v0=(&v0), .v1=(&v1), .v2=(&v2), .v3=(&v3), .v4=(&v4), .v5=(&v5), .v6=(&v6), .v7=(&v7), .v8=(&v8), .v9=(&v9), .v10=(&v10), .v11=(&v11), .v12=(&v12), .v13=(&v13), .v14=(&v14), .v15=(&v15), .v16=(&v16), .v17=(&v17), .v18=(&v18), .v19=(&v19), .v20=(&v20), .v21=(&v21), .v22=(&v22), .v23=(&v23), .v24=(&v24), .v25=(&v25), .v26=(&v26), .v27=(&v27), .v28=(&v28), .v29=(&v29), .v30=(&v30), .v31=(&v31), .v32=(&v32), .v33=(&v33), .v34=(&v34), .v35=(&v35), .v36=(&v36), .v37=(&v37), .v38=(&v38), .v39=(&v39), .v40=(&v40), .v41=(&v41), .v42=(&v42), .v43=(&v43), .v44=(&v44), .v45=(&v45), .v46=(&v46), .v47=(&v47), .v48=(&v48), .v49=(&v49), .v50=(&v50), .v51=(&v51), .v52=(&v52), .v53=(&v53), .v54=(&v54), .v55=(&v55), .v56=(&v56), .v57=(&v57), .v58=(&v58), .v59=(&v59), .v60=(&v60), .v61=(&v61), .v62=(&v62), .v63=(&v63), .v64=(&v64), .v65=(&v65), .v66=(&v66), .v67=(&v67), .v68=(&v68), .v69=(&v69), .v70=(&v70), .v71=(&v71), .v72=(&v72), .v73=(&v73), .v74=(&v74), .v75=(&v75), .v76=(&v76), .v77=(&v77), .v78=(&v78), .v79=(&v79), .v80=(&v80), .v81=(&v81), .v82=(&v82), .v83=(&v83), .v84=(&v84), .v85=(&v85), .v86=(&v86), .v87=(&v87), .v88=(&v88), .v89=(&v89), .v90=(&v90), .v91=(&v91), .v92=(&v92), .v93=(&v93), .v94=(&v94), .v95=(&v95), .v96=(&v96), .v97=(&v97), .v98=(&v98), .v99=(&v99), .v100=(&v100), .v101=(&v101), .v102=(&v102), .v103=(&v103), .v104=(&v104), .v105=(&v105), .v106=(&v106), .v107=(&v107), .v108=(&v108), .v109=(&v109), .v110=(&v110), .v111=(&v111), .v112=(&v112), .v113=(&v113), .v114=(&v114), .v115=(&v115), .v116=(&v116), .v117=(&v117), .v118=(&v118), .v119=(&v119), .v120=(&v120), .v121=(&v121), .v122=(&v122), .v123=(&v123), .v124=(&v124), .v125=(&v125), .v126=(&v126), .v127=(&v127), .v128=(&v128), .v129=(&v129), .v130=(&v130), .v131=(&v131), .v132=(&v132), .v133=(&v133), .v134=(&v134), .v135=(&v135), .v136=(&v136), .v137=(&v137), .v138=(&v138), .v139=(&v139), .v140=(&v140), .v141=(&v141), .v142=(&v142), .v143=(&v143), .v144=(&v144), .v145=(&v145), .v146=(&v146), .v147=(&v147), .v148=(&v148), .v149=(&v149), .v150=(&v150), .v151=(&v151), .v152=(&v152), .v153=(&v153), .v154=(&v154), .v155=(&v155), .v156=(&v156), .v157=(&v157), .v158=(&v158), .v159=(&v159), .v160=(&v160), .v161=(&v161), .v162=(&v162), .v163=(&v163), .v164=(&v164), .v165=(&v165), .v166=(&v166), .v167=(&v167), .v168=(&v168), .v169=(&v169), .v170=(&v170), .v171=(&v171), .v172=(&v172), .v173=(&v173), .v174=(&v174), .v175=(&v175), .v176=(&v176), .v177=(&v177), .v178=(&v178), .v179=(&v179), .v180=(&v180), .v181=(&v181), .v182=(&v182), .v183=(&v183), .v184=(&v184), .v185=(&v185), .v186=(&v186), .v187=(&v187), .v188=(&v188), .v189=(&v189), .v190=(&v190), .v191=(&v191), .v192=(&v192), .v193=(&v193), .v194=(&v194), .v195=(&v195), .v196=(&v196), .v197=(&v197), .v198=(&v198), .v199=(&v199), .v200=(&v200), .v201=(&v201), .v202=(&v202), .v203=(&v203), .v204=(&v204), .v205=(&v205), .v206=(&v206), .v207=(&v207), .v208=(&v208), .v209=(&v209), .v210=(&v210), .v211=(&v211), .v212=(&v212), .v213=(&v213), .v214=(&v214), .v215=(&v215), .v216=(&v216), .v217=(&v217), .v218=(&v218), .v219=(&v219), .v220=(&v220), .v221=(&v221), .v222=(&v222), .v223=(&v223), .v224=(&v224), .v225=(&v225), .v226=(&v226), .v227=(&v227), .v228=(&v228), .v229=(&v229), .v230=(&v230), .v231=(&v231), .v232=(&v232), .v233=(&v233), .v234=(&v234), .v235=(&v235), .v236=(&v236), .v237=(&v237), .v238=(&v238), .v239=(&v239), .v240=(&v240), .v241=(&v241), .v242=(&v242), .v243=(&v243), .v244=(&v244), .v245=(&v245), .v246=(&v246), .v247=(&v247), .v248=(&v248), .v249=(&v249), .v250=(&v250), .v251=(&v251), .v252=(&v252), .v253=(&v253), .v254=(&v254), .v255=(&v255), .v256=(&v256), .v257=(&v257), .v258=(&v258), .v259=(&v259), .v260=(&v260), .v261=(&v261), .v262=(&v262), .v263=(&v263), .v264=(&v264), .v265=(&v265), .v266=(&v266), .v267=(&v267), .v268=(&v268), .v269=(&v269), .v270=(&v270), .v271=(&v271), .v272=(&v272), .v273=(&v273), .v274=(&v274), .v275=(&v275), .v276=(&v276), .v277=(&v277), .v278=(&v278), .v279=(&v279), .v280=(&v280), .v281=(&v281), .v282=(&v282), .v283=(&v283), .v284=(&v284), .v285=(&v285), .v286=(&v286), .v287=(&v287), .v288=(&v288), .v289=(&v289), .v290=(&v290), .v291=(&v291), .v292=(&v292), .v293=(&v293), .v294=(&v294), .v295=(&v295), .v296=(&v296), .v297=(&v297), .v298=(&v298), .v299=(&v299), .v300=(&v300), .v301=(&v301), .v302=(&v302), .v303=(&v303), .v304=(&v304), .v305=(&v305), .v306=(&v306), .v307=(&v307), .v308=(&v308), .v309=(&v309), .v310=(&v310), .v311=(&v311), .v312=(&v312), .v313=(&v313), .v314=(&v314), .v315=(&v315), .v316=(&v316), .v317=(&v317), .v318=(&v318), .v319=(&v319), .v320=(&v320), .v321=(&v321), .v322=(&v322), .v323=(&v323), .v324=(&v324), .v325=(&v325), .v326=(&v326), .v327=(&v327), .v328=(&v328), .v329=(&v329), .v330=(&v330), .v331=(&v331), .v332=(&v332), .v333=(&v333), .v334=(&v334), .v335=(&v335), .v336=(&v336), .v337=(&v337), .v338=(&v338), .v339=(&v339), .v340=(&v340), .v341=(&v341), .v342=(&v342), .v343=(&v343), .v344=(&v344), .v345=(&v345), .v346=(&v346), .v347=(&v347), .v348=(&v348), .v349=(&v349), .v350=(&v350), .v351=(&v351), .v352=(&v352), .v353=(&v353), .v354=(&v354), .v355=(&v355), .v356=(&v356), .v357=(&v357), .v358=(&v358), .v359=(&v359), .v360=(&v360), .v361=(&v361), .v362=(&v362), .v363=(&v363), .v364=(&v364), .v365=(&v365), .v366=(&v366), .v367=(&v367), .v368=(&v368), .v369=(&v369), .v370=(&v370), .v371=(&v371), .v372=(&v372), .v373=(&v373), .v374=(&v374), .v375=(&v375), .v376=(&v376), .v377=(&v377), .v378=(&v378), .v379=(&v379), .v380=(&v380), .v381=(&v381), .v382=(&v382), .v383=(&v383), .v384=(&v384), .v385=(&v385), .v386=(&v386), .v387=(&v387), .v388=(&v388), .v389=(&v389), .v390=(&v390), .v391=(&v391), .v392=(&v392), .v393=(&v393), .v394=(&v394), .v395=(&v395), .v396=(&v396), .v397=(&v397), .v398=(&v398), .v399=(&v399), .v400=(&v400), .v401=(&v401), .v402=(&v402), .v403=(&v403), .v404=(&v404), .v405=(&v405), .v406=(&v406), .v407=(&v407), .v408=(&v408), .v409=(&v409), .v410=(&v410), .v411=(&v411), .v412=(&v412), .v413=(&v413), .v414=(&v414), .v415=(&v415), .v416=(&v416), .v417=(&v417), .v418=(&v418), .v419=(&v419), .v420=(&v420), .v421=(&v421), .v422=(&v422), .v423=(&v423), .v424=(&v424), .v425=(&v425), .v426=(&v426), .v427=(&v427), .v428=(&v428), .v429=(&v429), .v430=(&v430), .v431=(&v431), .v432=(&v432), .v433=(&v433), .v434=(&v434), .v435=(&v435), .v436=(&v436), .v437=(&v437), .v438=(&v438), .v439=(&v439), .v440=(&v440), .v441=(&v441), .v442=(&v442), .v443=(&v443), .v444=(&v444), .v445=(&v445), .v446=(&v446), .v447=(&v447), .v448=(&v448), .v449=(&v449), .v450=(&v450), .v451=(&v451), .v452=(&v452), .v453=(&v453), .v454=(&v454), .v455=(&v455), .v456=(&v456), .v457=(&v457), .v458=(&v458), .v459=(&v459), .v460=(&v460), .v461=(&v461), .v462=(&v462), .v463=(&v463), .v464=(&v464), .v465=(&v465), .v466=(&v466), .v467=(&v467), .v468=(&v468), .v469=(&v469), .v470=(&v470), .v471=(&v471), .v472=(&v472), .v473=(&v473), .v474=(&v474), .v475=(&v475), .v476=(&v476), .v477=(&v477), .v478=(&v478), .v479=(&v479), .v480=(&v480), .v481=(&v481), .v482=(&v482), .v483=(&v483), .v484=(&v484), .v485=(&v485), .v486=(&v486), .v487=(&v487), .v488=(&v488), .v489=(&v489), .v490=(&v490), .v491=(&v491), .v492=(&v492), .v493=(&v493), .v494=(&v494), .v495=(&v495), .v496=(&v496), .v497=(&v497), .v498=(&v498), .v499=(&v499), .v500=(&v500), .v501=(&v501), .v502=(&v502), .v503=(&v503), .v504=(&v504), .v505=(&v505), .v506=(&v506), .v507=(&v507), .v508=(&v508), .v509=(&v509), .v510=(&v510), .v511=(&v511), .v512=(&v512), .v513=(&v513), .v514=(&v514), .v515=(&v515), .v516=(&v516), .v517=(&v517), .v518=(&v518), .v519=(&v519), .v520=(&v520), .v521=(&v521), .v522=(&v522), .v523=(&v523), .v524=(&v524), .v525=(&v525), .v526=(&v526), .v527=(&v527), .v528=(&v528), .v529=(&v529), .v530=(&v530), .v531=(&v531), .v532=(&v532), .v533=(&v533), .v534=(&v534), .v535=(&v535), .v536=(&v536), .v537=(&v537), .v538=(&v538), .v539=(&v539), .v540=(&v540), .v541=(&v541), .v542=(&v542), .v543=(&v543), .v544=(&v544), .v545=(&v545), .v546=(&v546), .v547=(&v547), .v548=(&v548), .v549=(&v549), .v550=(&v550), .v551=(&v551), .v552=(&v552), .v553=(&v553), .v554=(&v554), .v555=(&v555), .v556=(&v556), .v557=(&v557), .v558=(&v558), .v559=(&v559), .v560=(&v560), .v561=(&v561), .v562=(&v562), .v563=(&v563), .v564=(&v564), .v565=(&v565), .v566=(&v566), .v567=(&v567), .v568=(&v568), .v569=(&v569), .v570=(&v570), .v571=(&v571), .v572=(&v572), .v573=(&v573), .v574=(&v574), .v575=(&v575), .v576=(&v576), .v577=(&v577), .v578=(&v578), .v579=(&v579), .v580=(&v580), .v581=(&v581), .v582=(&v582), .v583=(&v583), .v584=(&v584), .v585=(&v585), .v586=(&v586), .v587=(&v587), .v588=(&v588), .v589=(&v589), .v590=(&v590), .v591=(&v591), .v592=(&v592), .v593=(&v593), .v594=(&v594), .v595=(&v595), .v596=(&v596), .v597=(&v597), .v598=(&v598), .v599=(&v599), .v600=(&v600), .v601=(&v601), .v602=(&v602), .v603=(&v603), .v604=(&v604), .v605=(&v605), .v606=(&v606), .v607=(&v607), .v608=(&v608), .v609=(&v609), .v610=(&v610), .v611=(&v611), .v612=(&v612), .v613=(&v613), .v614=(&v614), .v615=(&v615), .v616=(&v616), .v617=(&v617), .v618=(&v618), .v619=(&v619), .v620=(&v620), .v621=(&v621), .v622=(&v622), .v623=(&v623), .v624=(&v624), .v625=(&v625), .v626=(&v626), .v627=(&v627), .v628=(&v628), .v629=(&v629), .v630=(&v630), .v631=(&v631), .v632=(&v632), .v633=(&v633), .v634=(&v634), .v635=(&v635), .v636=(&v636), .v637=(&v637), .v638=(&v638), .v639=(&v639), .v640=(&v640), .v641=(&v641), .v642=(&v642), .v643=(&v643), .v644=(&v644), .v645=(&v645), .v646=(&v646), .v647=(&v647), .v648=(&v648), .v649=(&v649), .v650=(&v650), .v651=(&v651), .v652=(&v652), .v653=(&v653), .v654=(&v654), .v655=(&v655), .v656=(&v656), .v657=(&v657), .v658=(&v658), .v659=(&v659), .v660=(&v660), .v661=(&v661), .v662=(&v662), .v663=(&v663), .v664=(&v664), .v665=(&v665), .v666=(&v666), .v667=(&v667), .v668=(&v668), .v669=(&v669), .v670=(&v670), .v671=(&v671), .v672=(&v672), .v673=(&v673), .v674=(&v674), .v675=(&v675), .v676=(&v676), .v677=(&v677), .v678=(&v678), .v679=(&v679), .v680=(&v680), .v681=(&v681), .v682=(&v682), .v683=(&v683), .v684=(&v684), .v685=(&v685), .v686=(&v686), .v687=(&v687), .v688=(&v688), .v689=(&v689), .v690=(&v690), .v691=(&v691), .v692=(&v692), .v693=(&v693), .v694=(&v694), .v695=(&v695), .v696=(&v696), .v697=(&v697), .v698=(&v698), .v699=(&v699), .v700=(&v700), .v701=(&v701), .v702=(&v702), .v703=(&v703), .v704=(&v704), .v705=(&v705), .v706=(&v706), .v707=(&v707), .v708=(&v708), .v709=(&v709), .v710=(&v710), .v711=(&v711), .v712=(&v712), .v713=(&v713), .v714=(&v714), .v715=(&v715), .v716=(&v716), .v717=(&v717), .v718=(&v718), .v719=(&v719), .v720=(&v720), .v721=(&v721), .v722=(&v722), .v723=(&v723), .v724=(&v724), .v725=(&v725), .v726=(&v726), .v727=(&v727), .v728=(&v728), .v729=(&v729), .v730=(&v730), .v731=(&v731), .v732=(&v732), .v733=(&v733), .v734=(&v734), .v735=(&v735), .v736=(&v736), .v737=(&v737), .v738=(&v738), .v739=(&v739), .v740=(&v740), .v741=(&v741), .v742=(&v742), .v743=(&v743), .v744=(&v744), .v745=(&v745), .v746=(&v746), .v747=(&v747), .v748=(&v748), .v749=(&v749), .v750=(&v750), .v751=(&v751), .v752=(&v752), .v753=(&v753), .v754=(&v754), .v755=(&v755), .v756=(&v756), .v757=(&v757), .v758=(&v758), .v759=(&v759), .v760=(&v760), .v761=(&v761), .v762=(&v762), .v763=(&v763), .v764=(&v764), .v765=(&v765), .v766=(&v766), .v767=(&v767), .v768=(&v768), .v769=(&v769), .v770=(&v770), .v771=(&v771), .v772=(&v772), .v773=(&v773), .v774=(&v774), .v775=(&v775), .v776=(&v776), .v777=(&v777), .v778=(&v778), .v779=(&v779), .v780=(&v780), .v781=(&v781), .v782=(&v782), .v783=(&v783), .v784=(&v784), .v785=(&v785), .v786=(&v786), .v787=(&v787), .v788=(&v788), .v789=(&v789), .v790=(&v790), .v791=(&v791), .v792=(&v792), .v793=(&v793), .v794=(&v794), .v795=(&v795), .v796=(&v796), .v797=(&v797), .v798=(&v798), .v799=(&v799), .v800=(&v800), .v801=(&v801), .v802=(&v802), .v803=(&v803), .v804=(&v804), .v805=(&v805), .v806=(&v806), .v807=(&v807), .v808=(&v808), .v809=(&v809), .v810=(&v810), .v811=(&v811), .v812=(&v812), .v813=(&v813), .v814=(&v814), .v815=(&v815), .v816=(&v816), .v817=(&v817), .v818=(&v818), .v819=(&v819), .v820=(&v820), .v821=(&v821), .v822=(&v822), .v823=(&v823), .v824=(&v824), .v825=(&v825), .v826=(&v826), .v827=(&v827), .v828=(&v828), .v829=(&v829), .v830=(&v830), .v831=(&v831), .v832=(&v832), .v833=(&v833), .v834=(&v834), .v835=(&v835), .v836=(&v836), .v837=(&v837), .v838=(&v838), .v839=(&v839), .v840=(&v840), .v841=(&v841), .v842=(&v842), .v843=(&v843), .v844=(&v844), .v845=(&v845), .v846=(&v846), .v847=(&v847), .v848=(&v848), .v849=(&v849), .v850=(&v850), .v851=(&v851), .v852=(&v852), .v853=(&v853), .v854=(&v854), .v855=(&v855), .v856=(&v856), .v857=(&v857), .v858=(&v858), .v859=(&v859), .v860=(&v860), .v861=(&v861), .v862=(&v862), .v863=(&v863), .v864=(&v864), .v865=(&v865), .v866=(&v866), .v867=(&v867), .v868=(&v868), .v869=(&v869), .v870=(&v870), .v871=(&v871), .v872=(&v872), .v873=(&v873), .v874=(&v874), .v875=(&v875), .v876=(&v876), .v877=(&v877), .v878=(&v878), .v879=(&v879), .v880=(&v880), .v881=(&v881), .v882=(&v882), .v883=(&v883), .v884=(&v884), .v885=(&v885), .v886=(&v886), .v887=(&v887), .v888=(&v888), .v889=(&v889), .v890=(&v890), .v891=(&v891), .v892=(&v892), .v893=(&v893), .v894=(&v894), .v895=(&v895), .v896=(&v896), .v897=(&v897), .v898=(&v898), .v899=(&v899), .v900=(&v900), .v901=(&v901), .v902=(&v902), .v903=(&v903), .v904=(&v904), .v905=(&v905), .v906=(&v906), .v907=(&v907), .v908=(&v908), .v909=(&v909), .v910=(&v910), .v911=(&v911), .v912=(&v912), .v913=(&v913), .v914=(&v914), .v915=(&v915), .v916=(&v916), .v917=(&v917), .v918=(&v918), .v919=(&v919), .v920=(&v920), .v921=(&v921), .v922=(&v922), .v923=(&v923), .v924=(&v924), .v925=(&v925), .v926=(&v926), .v927=(&v927), .v928=(&v928), .v929=(&v929), .v930=(&v930), .v931=(&v931), .v932=(&v932), .v933=(&v933), .v934=(&v934), .v935=(&v935), .v936=(&v936), .v937=(&v937), .v938=(&v938), .v939=(&v939), .v940=(&v940), .v941=(&v941), .v942=(&v942), .v943=(&v943), .v944=(&v944), .v945=(&v945), .v946=(&v946), .v947=(&v947), .v948=(&v948), .v949=(&v949), .v950=(&v950), .v951=(&v951), .v952=(&v952), .v953=(&v953), .v954=(&v954), .v955=(&v955), .v956=(&v956), .v957=(&v957), .v958=(&v958), .v959=(&v959), .v960=(&v960), .v961=(&v961), .v962=(&v962), .v963=(&v963), .v964=(&v964), .v965=(&v965), .v966=(&v966), .v967=(&v967), .v968=(&v968), .v969=(&v969), .v970=(&v970), .v971=(&v971), .v972=(&v972), .v973=(&v973), .v974=(&v974), .v975=(&v975), .v976=(&v976), .v977=(&v977), .v978=(&v978), .v979=(&v979), .v980=(&v980), .v981=(&v981), .v982=(&v982), .v983=(&v983), .v984=(&v984), .v985=(&v985), .v986=(&v986), .v987=(&v987), .v988=(&v988), .v989=(&v989), .v990=(&v990), .v991=(&v991), .v992=(&v992), .v993=(&v993), .v994=(&v994), .v995=(&v995), .v996=(&v996), .v997=(&v997), .v998=(&v998), .v999=(&v999)};
   return foo(tint_module_vars);
 }
diff --git a/test/tint/bug/tint/1538.wgsl.expected.ir.msl b/test/tint/bug/tint/1538.wgsl.expected.ir.msl
index 78cff54..21deb74 100644
--- a/test/tint/bug/tint/1538.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1538.wgsl.expected.ir.msl
@@ -30,7 +30,7 @@
   return 0;
 }
 kernel void tint_symbol(device tint_array<uint, 1>* buf [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.buf=buf};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.buf=buf};
   {
     while(true) {
       if (((*tint_module_vars.buf)[0] == 0u)) {
diff --git a/test/tint/bug/tint/1542.wgsl.expected.ir.msl b/test/tint/bug/tint/1542.wgsl.expected.ir.msl
index 36b8b6b..d4955f9 100644
--- a/test/tint/bug/tint/1542.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1542.wgsl.expected.ir.msl
@@ -8,6 +8,6 @@
 };
 
 kernel void tint_symbol(const constant UniformBuffer* u_input [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u_input=u_input};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u_input=u_input};
   int3 const temp = ((*tint_module_vars.u_input).d << (uint3(0u) & uint3(31u)));
 }
diff --git a/test/tint/bug/tint/1557.wgsl.expected.ir.msl b/test/tint/bug/tint/1557.wgsl.expected.ir.msl
index 34026b7..c775000 100644
--- a/test/tint/bug/tint/1557.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1557.wgsl.expected.ir.msl
@@ -21,7 +21,7 @@
   }
 }
 kernel void tint_symbol(const constant int* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
   switch((*tint_module_vars.u)) {
     case 0:
     {
diff --git a/test/tint/bug/tint/1604.wgsl.expected.ir.msl b/test/tint/bug/tint/1604.wgsl.expected.ir.msl
index 7f99c5f..c4066b5 100644
--- a/test/tint/bug/tint/1604.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1604.wgsl.expected.ir.msl
@@ -5,7 +5,7 @@
 };
 
 kernel void tint_symbol(const constant int* x [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.x=x};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.x=x};
   switch((*tint_module_vars.x)) {
     case 0:
     {
diff --git a/test/tint/bug/tint/1605.wgsl.expected.ir.msl b/test/tint/bug/tint/1605.wgsl.expected.ir.msl
index 6120df1..4379028 100644
--- a/test/tint/bug/tint/1605.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1605.wgsl.expected.ir.msl
@@ -29,6 +29,6 @@
   return false;
 }
 kernel void tint_symbol(const constant int* b [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.b=b};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.b=b};
   func_3(tint_module_vars);
 }
diff --git a/test/tint/bug/tint/1666.wgsl.expected.ir.msl b/test/tint/bug/tint/1666.wgsl.expected.ir.msl
index 33fa57f..1899167 100644
--- a/test/tint/bug/tint/1666.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1666.wgsl.expected.ir.msl
@@ -34,7 +34,7 @@
   float const x = (*tint_module_vars.rarr)[idx];
 }
 kernel void f(const device tint_array<float, 1>* rarr [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.rarr=rarr};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.rarr=rarr};
   vector();
   tint_symbol();
   fixed_size_array();
diff --git a/test/tint/bug/tint/1677.wgsl.expected.ir.msl b/test/tint/bug/tint/1677.wgsl.expected.ir.msl
index 4b3e94e..fccf79f 100644
--- a/test/tint/bug/tint/1677.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1677.wgsl.expected.ir.msl
@@ -8,6 +8,6 @@
 };
 
 kernel void tint_symbol(uint3 id [[thread_position_in_grid]], const device Input* input [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.input=input};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.input=input};
   int3 const pos = ((*tint_module_vars.input).position - int3(0));
 }
diff --git a/test/tint/bug/tint/1735.wgsl.expected.ir.msl b/test/tint/bug/tint/1735.wgsl.expected.ir.msl
index d4c9822..96c171e 100644
--- a/test/tint/bug/tint/1735.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1735.wgsl.expected.ir.msl
@@ -9,6 +9,6 @@
 };
 
 kernel void tint_symbol(const device S* in [[buffer(0)]], device S* out [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.in);
 }
diff --git a/test/tint/bug/tint/1776.spvasm.expected.ir.msl b/test/tint/bug/tint/1776.spvasm.expected.ir.msl
index bb7ca68..c7eca93 100644
--- a/test/tint/bug/tint/1776.spvasm.expected.ir.msl
+++ b/test/tint/bug/tint/1776.spvasm.expected.ir.msl
@@ -27,6 +27,6 @@
   S const x_18 = (*tint_module_vars.sb).inner[1];
 }
 kernel void tint_symbol(device sb_block* sb [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.sb=sb};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb=sb};
   main_1(tint_module_vars);
 }
diff --git a/test/tint/bug/tint/1776.wgsl.expected.ir.msl b/test/tint/bug/tint/1776.wgsl.expected.ir.msl
index 81cfe35..75cf4be 100644
--- a/test/tint/bug/tint/1776.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1776.wgsl.expected.ir.msl
@@ -21,6 +21,6 @@
 };
 
 kernel void tint_symbol(const device tint_array<S, 1>* sb [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.sb=sb};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb=sb};
   S const x = (*tint_module_vars.sb)[1];
 }
diff --git a/test/tint/bug/tint/1860.wgsl.expected.ir.msl b/test/tint/bug/tint/1860.wgsl.expected.ir.msl
index 050d7bb..41b4900 100644
--- a/test/tint/bug/tint/1860.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1860.wgsl.expected.ir.msl
@@ -8,6 +8,6 @@
 };
 
 vertex float4 tint_symbol(const constant DeclaredAfterUsage* declared_after_usage [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.declared_after_usage=declared_after_usage};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.declared_after_usage=declared_after_usage};
   return float4((*tint_module_vars.declared_after_usage).f);
 }
diff --git a/test/tint/bug/tint/1875.wgsl.expected.ir.msl b/test/tint/bug/tint/1875.wgsl.expected.ir.msl
index dcb4d6e..4dd0806 100644
--- a/test/tint/bug/tint/1875.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1875.wgsl.expected.ir.msl
@@ -26,7 +26,7 @@
 }
 kernel void tint_symbol(device Outputs* outputs [[buffer(1)]]) {
   thread uint count = 0u;
-  tint_module_vars_struct const tint_module_vars = {.count=(&count), .outputs=outputs};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.count=(&count), .outputs=outputs};
   uint a = 0u;
   uint b = 10u;
   uint c = 4294967294u;
diff --git a/test/tint/bug/tint/2029.wgsl.expected.ir.msl b/test/tint/bug/tint/2029.wgsl.expected.ir.msl
index c5abccc..b181a1e 100644
--- a/test/tint/bug/tint/2029.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/2029.wgsl.expected.ir.msl
@@ -5,6 +5,6 @@
 };
 
 kernel void tint_symbol(device int3* s [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s};
   (*tint_module_vars.s) = int3(1);
 }
diff --git a/test/tint/bug/tint/2038.wgsl.expected.ir.msl b/test/tint/bug/tint/2038.wgsl.expected.ir.msl
index d6e1651..27e3853 100644
--- a/test/tint/bug/tint/2038.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/2038.wgsl.expected.ir.msl
@@ -17,7 +17,7 @@
 };
 
 kernel void tint_symbol(device tint_array<uint, 2>* output [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.output=output};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.output=output};
   if (false) {
     (*tint_module_vars.output)[0] = 1u;
   }
diff --git a/test/tint/bug/tint/2069.wgsl.expected.ir.msl b/test/tint/bug/tint/2069.wgsl.expected.ir.msl
index 55df230..e2819a2 100644
--- a/test/tint/bug/tint/2069.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/2069.wgsl.expected.ir.msl
@@ -10,5 +10,5 @@
 
 kernel void tint_symbol() {
   thread modf_result_f32 v = modf_result_f32{.fract=0.0f, .whole=1.0f};
-  tint_module_vars_struct const tint_module_vars = {.v=(&v)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.v=(&v)};
 }
diff --git a/test/tint/bug/tint/2100.wgsl.expected.ir.msl b/test/tint/bug/tint/2100.wgsl.expected.ir.msl
index 7b04bc0..d41c21a 100644
--- a/test/tint/bug/tint/2100.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/2100.wgsl.expected.ir.msl
@@ -9,7 +9,7 @@
 };
 
 vertex float4 tint_symbol_1(const constant S* tint_symbol [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.tint_symbol=tint_symbol};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.tint_symbol=tint_symbol};
   float const x = (*tint_module_vars.tint_symbol).matrix_view[0][2u];
   return float4(x, 0.0f, 0.0f, 1.0f);
 }
diff --git a/test/tint/bug/tint/2175.wgsl.expected.ir.msl b/test/tint/bug/tint/2175.wgsl.expected.ir.msl
index 9fda4f9..d946e71 100644
--- a/test/tint/bug/tint/2175.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/2175.wgsl.expected.ir.msl
@@ -5,6 +5,6 @@
 };
 
 kernel void tint_symbol_3(device uint* tint_symbol_2 [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.tint_symbol_2=tint_symbol_2};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.tint_symbol_2=tint_symbol_2};
   (*tint_module_vars.tint_symbol_2) = 0u;
 }
diff --git a/test/tint/bug/tint/221.wgsl.expected.ir.msl b/test/tint/bug/tint/221.wgsl.expected.ir.msl
index 295f9e2..24bb006 100644
--- a/test/tint/bug/tint/221.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/221.wgsl.expected.ir.msl
@@ -25,7 +25,7 @@
   return (lhs - ((lhs / v) * v));
 }
 kernel void tint_symbol(device Buf* b [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.b=b};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.b=b};
   uint i = 0u;
   {
     while(true) {
diff --git a/test/tint/bug/tint/2237.wgsl.expected.ir.msl b/test/tint/bug/tint/2237.wgsl.expected.ir.msl
index 6e87f18..bf6afa5 100644
--- a/test/tint/bug/tint/2237.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/2237.wgsl.expected.ir.msl
@@ -20,7 +20,7 @@
   return tint_array<uint, 4>{0u, 1u, 2u, 4u}[(*tint_module_vars.tint_symbol)];
 }
 kernel void tint_symbol_1(device uint* tint_symbol [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.tint_symbol=tint_symbol};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.tint_symbol=tint_symbol};
   uint const v = tint_array<uint, 4>{0u, 1u, 2u, 4u}[(*tint_module_vars.tint_symbol)];
   (*tint_module_vars.tint_symbol) = (v + foo(tint_module_vars));
 }
diff --git a/test/tint/bug/tint/492.wgsl.expected.ir.msl b/test/tint/bug/tint/492.wgsl.expected.ir.msl
index 182a41a..6bffa09 100644
--- a/test/tint/bug/tint/492.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/492.wgsl.expected.ir.msl
@@ -8,7 +8,7 @@
 };
 
 kernel void tint_symbol(device S* buf [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.buf=buf};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.buf=buf};
   device int* const p = (&(*tint_module_vars.buf).a);
   (*p) = 12;
 }
diff --git a/test/tint/bug/tint/744.wgsl.expected.ir.msl b/test/tint/bug/tint/744.wgsl.expected.ir.msl
index bae927f..3358154 100644
--- a/test/tint/bug/tint/744.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/744.wgsl.expected.ir.msl
@@ -28,7 +28,7 @@
 };
 
 kernel void tint_symbol(uint3 global_id [[thread_position_in_grid]], const device Matrix* firstMatrix [[buffer(0)]], const device Matrix* secondMatrix [[buffer(1)]], device Matrix* resultMatrix [[buffer(2)]], const constant Uniforms* uniforms [[buffer(3)]]) {
-  tint_module_vars_struct const tint_module_vars = {.firstMatrix=firstMatrix, .secondMatrix=secondMatrix, .resultMatrix=resultMatrix, .uniforms=uniforms};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.firstMatrix=firstMatrix, .secondMatrix=secondMatrix, .resultMatrix=resultMatrix, .uniforms=uniforms};
   uint2 const resultCell = uint2(global_id[1u], global_id[0u]);
   uint const dimInner = (*tint_module_vars.uniforms).aShape[1u];
   uint const dimOutter = (*tint_module_vars.uniforms).outShape[1u];
diff --git a/test/tint/bug/tint/870.spvasm.expected.ir.msl b/test/tint/bug/tint/870.spvasm.expected.ir.msl
index 5b030ea..23890b1 100644
--- a/test/tint/bug/tint/870.spvasm.expected.ir.msl
+++ b/test/tint/bug/tint/870.spvasm.expected.ir.msl
@@ -36,6 +36,6 @@
   orientation[5] = x_23[5u];
 }
 fragment void tint_symbol(const device x_B4_BuildInformation* sspp962805860buildInformation [[buffer(2)]]) {
-  tint_module_vars_struct const tint_module_vars = {.sspp962805860buildInformation=sspp962805860buildInformation};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sspp962805860buildInformation=sspp962805860buildInformation};
   main_1(tint_module_vars);
 }
diff --git a/test/tint/bug/tint/980.wgsl.expected.ir.msl b/test/tint/bug/tint/980.wgsl.expected.ir.msl
index cd2fbf9..6a4cb15 100644
--- a/test/tint/bug/tint/980.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/980.wgsl.expected.ir.msl
@@ -14,6 +14,6 @@
   return normalize(normal);
 }
 kernel void tint_symbol(uint idx [[thread_index_in_threadgroup]], device S* io [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.io=io};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.io=io};
   (*tint_module_vars.io).v = Bad((*tint_module_vars.io).i, (*tint_module_vars.io).v);
 }
diff --git a/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.ir.msl b/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.ir.msl
index 9fbd613..0f5de1b 100644
--- a/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.ir.msl
@@ -9,6 +9,6 @@
 };
 
 fragment void tint_symbol_1(const constant S* data [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.data=data};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.data=data};
   half2 const x = ((*tint_module_vars.data).tint_symbol * (*tint_module_vars.data).vector);
 }
diff --git a/test/tint/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.ir.msl
index 4ad47b1..727c588 100644
--- a/test/tint/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.ir.msl
@@ -9,6 +9,6 @@
 };
 
 fragment void tint_symbol_1(const constant S* data [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.data=data};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.data=data};
   float2 const x = ((*tint_module_vars.data).tint_symbol * (*tint_module_vars.data).vector);
 }
diff --git a/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.ir.msl b/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.ir.msl
index e45d133..5055378 100644
--- a/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.ir.msl
@@ -9,6 +9,6 @@
 };
 
 fragment void tint_symbol_1(const constant S* data [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.data=data};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.data=data};
   half3 const x = ((*tint_module_vars.data).tint_symbol * (*tint_module_vars.data).vector);
 }
diff --git a/test/tint/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.ir.msl
index 90da387..6f2c302 100644
--- a/test/tint/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.ir.msl
@@ -9,6 +9,6 @@
 };
 
 fragment void tint_symbol_1(const constant S* data [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.data=data};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.data=data};
   float3 const x = ((*tint_module_vars.data).tint_symbol * (*tint_module_vars.data).vector);
 }
diff --git a/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.ir.msl b/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.ir.msl
index daa1907..e1df641 100644
--- a/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.ir.msl
@@ -9,6 +9,6 @@
 };
 
 fragment void tint_symbol_1(const constant S* data [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.data=data};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.data=data};
   half3 const x = ((*tint_module_vars.data).vector * (*tint_module_vars.data).tint_symbol);
 }
diff --git a/test/tint/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.ir.msl
index 19163b7..338a114 100644
--- a/test/tint/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.ir.msl
@@ -9,6 +9,6 @@
 };
 
 fragment void tint_symbol_1(const constant S* data [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.data=data};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.data=data};
   float3 const x = ((*tint_module_vars.data).vector * (*tint_module_vars.data).tint_symbol);
 }
diff --git a/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.ir.msl b/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.ir.msl
index cafdcab..07d146c 100644
--- a/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.ir.msl
@@ -9,6 +9,6 @@
 };
 
 fragment void tint_symbol_1(const constant S* data [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.data=data};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.data=data};
   half4 const x = ((*tint_module_vars.data).vector * (*tint_module_vars.data).tint_symbol);
 }
diff --git a/test/tint/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.ir.msl
index 3f298d1..a33fa33 100644
--- a/test/tint/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.ir.msl
@@ -9,6 +9,6 @@
 };
 
 fragment void tint_symbol_1(const constant S* data [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.data=data};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.data=data};
   float4 const x = ((*tint_module_vars.data).vector * (*tint_module_vars.data).tint_symbol);
 }
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f16.wgsl.expected.ir.msl
index 4c68798..b551470 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half2x2* out [[buffer(0)]]) {
   thread half2x2 m = half2x2(half2(0.0h, 1.0h), half2(2.0h, 3.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = half2x2((*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.ir.msl
index 5f14672..0a2621b 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float2x2* out [[buffer(0)]]) {
   thread float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = float2x2((*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f16.wgsl.expected.ir.msl
index 8a832b8..43f55dc 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half2x2* out [[buffer(0)]]) {
   thread half2x2 m = half2x2(half2(0.0h, 1.0h), half2(2.0h, 3.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.ir.msl
index 5aa1a1e..9abb346 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float2x2* out [[buffer(0)]]) {
   thread float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f16.wgsl.expected.ir.msl
index 8a832b8..43f55dc 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half2x2* out [[buffer(0)]]) {
   thread half2x2 m = half2x2(half2(0.0h, 1.0h), half2(2.0h, 3.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.ir.msl
index 5aa1a1e..9abb346 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float2x2* out [[buffer(0)]]) {
   thread float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f16.wgsl.expected.ir.msl
index 4c68798..b551470 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half2x2* out [[buffer(0)]]) {
   thread half2x2 m = half2x2(half2(0.0h, 1.0h), half2(2.0h, 3.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = half2x2((*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.ir.msl
index 5f14672..0a2621b 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float2x2* out [[buffer(0)]]) {
   thread float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = float2x2((*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.ir.msl
index 1dc41c0..7b8fa33 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.ir.msl
@@ -5,6 +5,6 @@
 };
 
 kernel void f(device float2x2* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   (*tint_module_vars.out) = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f16.wgsl.expected.ir.msl
index 8a832b8..43f55dc 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half2x2* out [[buffer(0)]]) {
   thread half2x2 m = half2x2(half2(0.0h, 1.0h), half2(2.0h, 3.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.ir.msl
index 5aa1a1e..9abb346 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float2x2* out [[buffer(0)]]) {
   thread float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.ir.msl
index 1dc41c0..7b8fa33 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.ir.msl
@@ -5,6 +5,6 @@
 };
 
 kernel void f(device float2x2* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   (*tint_module_vars.out) = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f16.wgsl.expected.ir.msl
index 8a832b8..43f55dc 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half2x2* out [[buffer(0)]]) {
   thread half2x2 m = half2x2(half2(0.0h, 1.0h), half2(2.0h, 3.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.ir.msl
index 5aa1a1e..9abb346 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float2x2* out [[buffer(0)]]) {
   thread float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat2x2/load/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/load/f16.wgsl.expected.ir.msl
index cae3bd0..d12fbcb 100644
--- a/test/tint/expressions/type_ctor/mat2x2/load/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/load/f16.wgsl.expected.ir.msl
@@ -5,7 +5,7 @@
 };
 
 kernel void f(device half2x2* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   half2x2 m = half2x2(half2(0.0h), half2(0.0h));
   (*tint_module_vars.out) = half2x2(m);
 }
diff --git a/test/tint/expressions/type_ctor/mat2x2/load/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/load/f32.wgsl.expected.ir.msl
index b066f0b..dbb98ff 100644
--- a/test/tint/expressions/type_ctor/mat2x2/load/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/load/f32.wgsl.expected.ir.msl
@@ -5,7 +5,7 @@
 };
 
 kernel void f(device float2x2* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   float2x2 m = float2x2(float2(0.0f), float2(0.0f));
   (*tint_module_vars.out) = float2x2(m);
 }
diff --git a/test/tint/expressions/type_ctor/mat2x2/zero/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/zero/f16.wgsl.expected.ir.msl
index 7a0a8ca..0589cea 100644
--- a/test/tint/expressions/type_ctor/mat2x2/zero/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/zero/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half2x2* out [[buffer(0)]]) {
   thread half2x2 m = half2x2(half2(0.0h), half2(0.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.ir.msl
index 40054f8..66ab06c 100644
--- a/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float2x2* out [[buffer(0)]]) {
   thread float2x2 m = float2x2(float2(0.0f), float2(0.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f16.wgsl.expected.ir.msl
index 37114d6..a1b5968 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f16.wgsl.expected.ir.msl
@@ -11,6 +11,6 @@
 }
 kernel void f(device half2x3* out [[buffer(0)]]) {
   thread half2x3 m = half2x3(half3(0.0h, 1.0h, 2.0h), half3(3.0h, 4.0h, 5.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, half2x3((*tint_module_vars.m)));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.ir.msl
index 3a8248f..25724c8 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.ir.msl
@@ -11,6 +11,6 @@
 }
 kernel void f(device float2x3* out [[buffer(0)]]) {
   thread float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, float2x3((*tint_module_vars.m)));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f16.wgsl.expected.ir.msl
index b741177..68d8060 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f16.wgsl.expected.ir.msl
@@ -11,6 +11,6 @@
 }
 kernel void f(device half2x3* out [[buffer(0)]]) {
   thread half2x3 m = half2x3(half3(0.0h, 1.0h, 2.0h), half3(3.0h, 4.0h, 5.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.ir.msl
index c9a5358..09df06d 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.ir.msl
@@ -11,6 +11,6 @@
 }
 kernel void f(device float2x3* out [[buffer(0)]]) {
   thread float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f16.wgsl.expected.ir.msl
index b741177..68d8060 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f16.wgsl.expected.ir.msl
@@ -11,6 +11,6 @@
 }
 kernel void f(device half2x3* out [[buffer(0)]]) {
   thread half2x3 m = half2x3(half3(0.0h, 1.0h, 2.0h), half3(3.0h, 4.0h, 5.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.ir.msl
index c9a5358..09df06d 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.ir.msl
@@ -11,6 +11,6 @@
 }
 kernel void f(device float2x3* out [[buffer(0)]]) {
   thread float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f16.wgsl.expected.ir.msl
index 37114d6..a1b5968 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f16.wgsl.expected.ir.msl
@@ -11,6 +11,6 @@
 }
 kernel void f(device half2x3* out [[buffer(0)]]) {
   thread half2x3 m = half2x3(half3(0.0h, 1.0h, 2.0h), half3(3.0h, 4.0h, 5.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, half2x3((*tint_module_vars.m)));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.ir.msl
index 3a8248f..25724c8 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.ir.msl
@@ -11,6 +11,6 @@
 }
 kernel void f(device float2x3* out [[buffer(0)]]) {
   thread float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, float2x3((*tint_module_vars.m)));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.ir.msl
index b104cd1..70a13f9 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.ir.msl
@@ -9,6 +9,6 @@
   (*target)[1u] = value_param[1u];
 }
 kernel void f(device float2x3* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f)));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f16.wgsl.expected.ir.msl
index b741177..68d8060 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f16.wgsl.expected.ir.msl
@@ -11,6 +11,6 @@
 }
 kernel void f(device half2x3* out [[buffer(0)]]) {
   thread half2x3 m = half2x3(half3(0.0h, 1.0h, 2.0h), half3(3.0h, 4.0h, 5.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.ir.msl
index c9a5358..09df06d 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.ir.msl
@@ -11,6 +11,6 @@
 }
 kernel void f(device float2x3* out [[buffer(0)]]) {
   thread float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.ir.msl
index b104cd1..70a13f9 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.ir.msl
@@ -9,6 +9,6 @@
   (*target)[1u] = value_param[1u];
 }
 kernel void f(device float2x3* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f)));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f16.wgsl.expected.ir.msl
index b741177..68d8060 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f16.wgsl.expected.ir.msl
@@ -11,6 +11,6 @@
 }
 kernel void f(device half2x3* out [[buffer(0)]]) {
   thread half2x3 m = half2x3(half3(0.0h, 1.0h, 2.0h), half3(3.0h, 4.0h, 5.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.ir.msl
index c9a5358..09df06d 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.ir.msl
@@ -11,6 +11,6 @@
 }
 kernel void f(device float2x3* out [[buffer(0)]]) {
   thread float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/load/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/load/f16.wgsl.expected.ir.msl
index 7f26f49..333a43d 100644
--- a/test/tint/expressions/type_ctor/mat2x3/load/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/load/f16.wgsl.expected.ir.msl
@@ -9,7 +9,7 @@
   (*target)[1u] = value_param[1u];
 }
 kernel void f(device half2x3* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   half2x3 m = half2x3(half3(0.0h), half3(0.0h));
   tint_store_and_preserve_padding(tint_module_vars.out, half2x3(m));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/load/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/load/f32.wgsl.expected.ir.msl
index 15b2b5e..094e834 100644
--- a/test/tint/expressions/type_ctor/mat2x3/load/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/load/f32.wgsl.expected.ir.msl
@@ -9,7 +9,7 @@
   (*target)[1u] = value_param[1u];
 }
 kernel void f(device float2x3* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   float2x3 m = float2x3(float3(0.0f), float3(0.0f));
   tint_store_and_preserve_padding(tint_module_vars.out, float2x3(m));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/zero/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/zero/f16.wgsl.expected.ir.msl
index 39b1128..ab22a84 100644
--- a/test/tint/expressions/type_ctor/mat2x3/zero/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/zero/f16.wgsl.expected.ir.msl
@@ -11,6 +11,6 @@
 }
 kernel void f(device half2x3* out [[buffer(0)]]) {
   thread half2x3 m = half2x3(half3(0.0h), half3(0.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.ir.msl
index a3c5077..830dc56 100644
--- a/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.ir.msl
@@ -11,6 +11,6 @@
 }
 kernel void f(device float2x3* out [[buffer(0)]]) {
   thread float2x3 m = float2x3(float3(0.0f), float3(0.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f16.wgsl.expected.ir.msl
index 3286eb6..b344578 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half2x4* out [[buffer(0)]]) {
   thread half2x4 m = half2x4(half4(0.0h, 1.0h, 2.0h, 3.0h), half4(4.0h, 5.0h, 6.0h, 7.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = half2x4((*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.ir.msl
index dd86111..40a693f 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float2x4* out [[buffer(0)]]) {
   thread float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = float2x4((*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f16.wgsl.expected.ir.msl
index 004898d..b528439 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half2x4* out [[buffer(0)]]) {
   thread half2x4 m = half2x4(half4(0.0h, 1.0h, 2.0h, 3.0h), half4(4.0h, 5.0h, 6.0h, 7.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.ir.msl
index c698196..3a0253c 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float2x4* out [[buffer(0)]]) {
   thread float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f16.wgsl.expected.ir.msl
index 004898d..b528439 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half2x4* out [[buffer(0)]]) {
   thread half2x4 m = half2x4(half4(0.0h, 1.0h, 2.0h, 3.0h), half4(4.0h, 5.0h, 6.0h, 7.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.ir.msl
index c698196..3a0253c 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float2x4* out [[buffer(0)]]) {
   thread float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f16.wgsl.expected.ir.msl
index 3286eb6..b344578 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half2x4* out [[buffer(0)]]) {
   thread half2x4 m = half2x4(half4(0.0h, 1.0h, 2.0h, 3.0h), half4(4.0h, 5.0h, 6.0h, 7.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = half2x4((*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.ir.msl
index dd86111..40a693f 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float2x4* out [[buffer(0)]]) {
   thread float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = float2x4((*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.ir.msl
index 3026fbe3..014dead 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.ir.msl
@@ -5,6 +5,6 @@
 };
 
 kernel void f(device float2x4* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   (*tint_module_vars.out) = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f16.wgsl.expected.ir.msl
index 004898d..b528439 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half2x4* out [[buffer(0)]]) {
   thread half2x4 m = half2x4(half4(0.0h, 1.0h, 2.0h, 3.0h), half4(4.0h, 5.0h, 6.0h, 7.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.ir.msl
index c698196..3a0253c 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float2x4* out [[buffer(0)]]) {
   thread float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.ir.msl
index 3026fbe3..014dead 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.ir.msl
@@ -5,6 +5,6 @@
 };
 
 kernel void f(device float2x4* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   (*tint_module_vars.out) = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
 }
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f16.wgsl.expected.ir.msl
index 004898d..b528439 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half2x4* out [[buffer(0)]]) {
   thread half2x4 m = half2x4(half4(0.0h, 1.0h, 2.0h, 3.0h), half4(4.0h, 5.0h, 6.0h, 7.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.ir.msl
index c698196..3a0253c 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float2x4* out [[buffer(0)]]) {
   thread float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat2x4/load/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/load/f16.wgsl.expected.ir.msl
index 5fe385a..cde27b3 100644
--- a/test/tint/expressions/type_ctor/mat2x4/load/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/load/f16.wgsl.expected.ir.msl
@@ -5,7 +5,7 @@
 };
 
 kernel void f(device half2x4* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   half2x4 m = half2x4(half4(0.0h), half4(0.0h));
   (*tint_module_vars.out) = half2x4(m);
 }
diff --git a/test/tint/expressions/type_ctor/mat2x4/load/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/load/f32.wgsl.expected.ir.msl
index 0e08d0b..ee7c544 100644
--- a/test/tint/expressions/type_ctor/mat2x4/load/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/load/f32.wgsl.expected.ir.msl
@@ -5,7 +5,7 @@
 };
 
 kernel void f(device float2x4* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   float2x4 m = float2x4(float4(0.0f), float4(0.0f));
   (*tint_module_vars.out) = float2x4(m);
 }
diff --git a/test/tint/expressions/type_ctor/mat2x4/zero/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/zero/f16.wgsl.expected.ir.msl
index fdcdee2..e3abd82 100644
--- a/test/tint/expressions/type_ctor/mat2x4/zero/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/zero/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half2x4* out [[buffer(0)]]) {
   thread half2x4 m = half2x4(half4(0.0h), half4(0.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.ir.msl
index 265d79c..08373d4 100644
--- a/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float2x4* out [[buffer(0)]]) {
   thread float2x4 m = float2x4(float4(0.0f), float4(0.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f16.wgsl.expected.ir.msl
index 67fb019..188a450 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half3x2* out [[buffer(0)]]) {
   thread half3x2 m = half3x2(half2(0.0h, 1.0h), half2(2.0h, 3.0h), half2(4.0h, 5.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = half3x2((*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.ir.msl
index 4faea37..df6c477 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float3x2* out [[buffer(0)]]) {
   thread float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = float3x2((*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f16.wgsl.expected.ir.msl
index 521eca77..5a5503c 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half3x2* out [[buffer(0)]]) {
   thread half3x2 m = half3x2(half2(0.0h, 1.0h), half2(2.0h, 3.0h), half2(4.0h, 5.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.ir.msl
index f8511bb..a57e84d 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float3x2* out [[buffer(0)]]) {
   thread float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f16.wgsl.expected.ir.msl
index 521eca77..5a5503c 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half3x2* out [[buffer(0)]]) {
   thread half3x2 m = half3x2(half2(0.0h, 1.0h), half2(2.0h, 3.0h), half2(4.0h, 5.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.ir.msl
index f8511bb..a57e84d 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float3x2* out [[buffer(0)]]) {
   thread float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f16.wgsl.expected.ir.msl
index 67fb019..188a450 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half3x2* out [[buffer(0)]]) {
   thread half3x2 m = half3x2(half2(0.0h, 1.0h), half2(2.0h, 3.0h), half2(4.0h, 5.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = half3x2((*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.ir.msl
index 4faea37..df6c477 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float3x2* out [[buffer(0)]]) {
   thread float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = float3x2((*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.ir.msl
index d3aa798..2ff4265 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.ir.msl
@@ -5,6 +5,6 @@
 };
 
 kernel void f(device float3x2* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   (*tint_module_vars.out) = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f16.wgsl.expected.ir.msl
index 521eca77..5a5503c 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half3x2* out [[buffer(0)]]) {
   thread half3x2 m = half3x2(half2(0.0h, 1.0h), half2(2.0h, 3.0h), half2(4.0h, 5.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.ir.msl
index f8511bb..a57e84d 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float3x2* out [[buffer(0)]]) {
   thread float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.ir.msl
index d3aa798..2ff4265 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.ir.msl
@@ -5,6 +5,6 @@
 };
 
 kernel void f(device float3x2* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   (*tint_module_vars.out) = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f16.wgsl.expected.ir.msl
index 521eca77..5a5503c 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half3x2* out [[buffer(0)]]) {
   thread half3x2 m = half3x2(half2(0.0h, 1.0h), half2(2.0h, 3.0h), half2(4.0h, 5.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.ir.msl
index f8511bb..a57e84d 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float3x2* out [[buffer(0)]]) {
   thread float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat3x2/load/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/load/f16.wgsl.expected.ir.msl
index 79eea62..1b7c309 100644
--- a/test/tint/expressions/type_ctor/mat3x2/load/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/load/f16.wgsl.expected.ir.msl
@@ -5,7 +5,7 @@
 };
 
 kernel void f(device half3x2* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   half3x2 m = half3x2(half2(0.0h), half2(0.0h), half2(0.0h));
   (*tint_module_vars.out) = half3x2(m);
 }
diff --git a/test/tint/expressions/type_ctor/mat3x2/load/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/load/f32.wgsl.expected.ir.msl
index e683848..7fe6b74 100644
--- a/test/tint/expressions/type_ctor/mat3x2/load/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/load/f32.wgsl.expected.ir.msl
@@ -5,7 +5,7 @@
 };
 
 kernel void f(device float3x2* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   float3x2 m = float3x2(float2(0.0f), float2(0.0f), float2(0.0f));
   (*tint_module_vars.out) = float3x2(m);
 }
diff --git a/test/tint/expressions/type_ctor/mat3x2/zero/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/zero/f16.wgsl.expected.ir.msl
index 1474c28..3dd8fc7 100644
--- a/test/tint/expressions/type_ctor/mat3x2/zero/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/zero/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half3x2* out [[buffer(0)]]) {
   thread half3x2 m = half3x2(half2(0.0h), half2(0.0h), half2(0.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.ir.msl
index 44c518f..2dccd8f 100644
--- a/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float3x2* out [[buffer(0)]]) {
   thread float3x2 m = float3x2(float2(0.0f), float2(0.0f), float2(0.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f16.wgsl.expected.ir.msl
index 7a81f8b..fd83da2 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f16.wgsl.expected.ir.msl
@@ -12,6 +12,6 @@
 }
 kernel void f(device half3x3* out [[buffer(0)]]) {
   thread half3x3 m = half3x3(half3(0.0h, 1.0h, 2.0h), half3(3.0h, 4.0h, 5.0h), half3(6.0h, 7.0h, 8.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, half3x3((*tint_module_vars.m)));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.ir.msl
index d47de76..651d319 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.ir.msl
@@ -12,6 +12,6 @@
 }
 kernel void f(device float3x3* out [[buffer(0)]]) {
   thread float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, float3x3((*tint_module_vars.m)));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f16.wgsl.expected.ir.msl
index d54d574..10693eb 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f16.wgsl.expected.ir.msl
@@ -12,6 +12,6 @@
 }
 kernel void f(device half3x3* out [[buffer(0)]]) {
   thread half3x3 m = half3x3(half3(0.0h, 1.0h, 2.0h), half3(3.0h, 4.0h, 5.0h), half3(6.0h, 7.0h, 8.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.ir.msl
index 63fddf5..10f1d7b 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.ir.msl
@@ -12,6 +12,6 @@
 }
 kernel void f(device float3x3* out [[buffer(0)]]) {
   thread float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f16.wgsl.expected.ir.msl
index d54d574..10693eb 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f16.wgsl.expected.ir.msl
@@ -12,6 +12,6 @@
 }
 kernel void f(device half3x3* out [[buffer(0)]]) {
   thread half3x3 m = half3x3(half3(0.0h, 1.0h, 2.0h), half3(3.0h, 4.0h, 5.0h), half3(6.0h, 7.0h, 8.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.ir.msl
index 63fddf5..10f1d7b 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.ir.msl
@@ -12,6 +12,6 @@
 }
 kernel void f(device float3x3* out [[buffer(0)]]) {
   thread float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f16.wgsl.expected.ir.msl
index 7a81f8b..fd83da2 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f16.wgsl.expected.ir.msl
@@ -12,6 +12,6 @@
 }
 kernel void f(device half3x3* out [[buffer(0)]]) {
   thread half3x3 m = half3x3(half3(0.0h, 1.0h, 2.0h), half3(3.0h, 4.0h, 5.0h), half3(6.0h, 7.0h, 8.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, half3x3((*tint_module_vars.m)));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.ir.msl
index d47de76..651d319 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.ir.msl
@@ -12,6 +12,6 @@
 }
 kernel void f(device float3x3* out [[buffer(0)]]) {
   thread float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, float3x3((*tint_module_vars.m)));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.ir.msl
index 251e0b2..a18dc99 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.ir.msl
@@ -10,6 +10,6 @@
   (*target)[2u] = value_param[2u];
 }
 kernel void f(device float3x3* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f)));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f16.wgsl.expected.ir.msl
index d54d574..10693eb 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f16.wgsl.expected.ir.msl
@@ -12,6 +12,6 @@
 }
 kernel void f(device half3x3* out [[buffer(0)]]) {
   thread half3x3 m = half3x3(half3(0.0h, 1.0h, 2.0h), half3(3.0h, 4.0h, 5.0h), half3(6.0h, 7.0h, 8.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.ir.msl
index 63fddf5..10f1d7b 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.ir.msl
@@ -12,6 +12,6 @@
 }
 kernel void f(device float3x3* out [[buffer(0)]]) {
   thread float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.ir.msl
index 251e0b2..a18dc99 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.ir.msl
@@ -10,6 +10,6 @@
   (*target)[2u] = value_param[2u];
 }
 kernel void f(device float3x3* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f)));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f16.wgsl.expected.ir.msl
index d54d574..10693eb 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f16.wgsl.expected.ir.msl
@@ -12,6 +12,6 @@
 }
 kernel void f(device half3x3* out [[buffer(0)]]) {
   thread half3x3 m = half3x3(half3(0.0h, 1.0h, 2.0h), half3(3.0h, 4.0h, 5.0h), half3(6.0h, 7.0h, 8.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.ir.msl
index 63fddf5..10f1d7b 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.ir.msl
@@ -12,6 +12,6 @@
 }
 kernel void f(device float3x3* out [[buffer(0)]]) {
   thread float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/load/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/load/f16.wgsl.expected.ir.msl
index 7f80b18..7e216a8 100644
--- a/test/tint/expressions/type_ctor/mat3x3/load/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/load/f16.wgsl.expected.ir.msl
@@ -10,7 +10,7 @@
   (*target)[2u] = value_param[2u];
 }
 kernel void f(device half3x3* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   half3x3 m = half3x3(half3(0.0h), half3(0.0h), half3(0.0h));
   tint_store_and_preserve_padding(tint_module_vars.out, half3x3(m));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/load/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/load/f32.wgsl.expected.ir.msl
index befce49..01ca5eb 100644
--- a/test/tint/expressions/type_ctor/mat3x3/load/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/load/f32.wgsl.expected.ir.msl
@@ -10,7 +10,7 @@
   (*target)[2u] = value_param[2u];
 }
 kernel void f(device float3x3* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   float3x3 m = float3x3(float3(0.0f), float3(0.0f), float3(0.0f));
   tint_store_and_preserve_padding(tint_module_vars.out, float3x3(m));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/zero/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/zero/f16.wgsl.expected.ir.msl
index 51e8405..54d4792 100644
--- a/test/tint/expressions/type_ctor/mat3x3/zero/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/zero/f16.wgsl.expected.ir.msl
@@ -12,6 +12,6 @@
 }
 kernel void f(device half3x3* out [[buffer(0)]]) {
   thread half3x3 m = half3x3(half3(0.0h), half3(0.0h), half3(0.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.ir.msl
index 32ddcf3..c6c1564 100644
--- a/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.ir.msl
@@ -12,6 +12,6 @@
 }
 kernel void f(device float3x3* out [[buffer(0)]]) {
   thread float3x3 m = float3x3(float3(0.0f), float3(0.0f), float3(0.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f16.wgsl.expected.ir.msl
index bc51772..d686eb4 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half3x4* out [[buffer(0)]]) {
   thread half3x4 m = half3x4(half4(0.0h, 1.0h, 2.0h, 3.0h), half4(4.0h, 5.0h, 6.0h, 7.0h), half4(8.0h, 9.0h, 10.0h, 11.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = half3x4((*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.ir.msl
index 76fae16..2d6063d 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float3x4* out [[buffer(0)]]) {
   thread float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = float3x4((*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f16.wgsl.expected.ir.msl
index 3bc3c94..a11adf4 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half3x4* out [[buffer(0)]]) {
   thread half3x4 m = half3x4(half4(0.0h, 1.0h, 2.0h, 3.0h), half4(4.0h, 5.0h, 6.0h, 7.0h), half4(8.0h, 9.0h, 10.0h, 11.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.ir.msl
index 87e836e..3410a47 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float3x4* out [[buffer(0)]]) {
   thread float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f16.wgsl.expected.ir.msl
index 3bc3c94..a11adf4 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half3x4* out [[buffer(0)]]) {
   thread half3x4 m = half3x4(half4(0.0h, 1.0h, 2.0h, 3.0h), half4(4.0h, 5.0h, 6.0h, 7.0h), half4(8.0h, 9.0h, 10.0h, 11.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.ir.msl
index 87e836e..3410a47 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float3x4* out [[buffer(0)]]) {
   thread float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f16.wgsl.expected.ir.msl
index bc51772..d686eb4 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half3x4* out [[buffer(0)]]) {
   thread half3x4 m = half3x4(half4(0.0h, 1.0h, 2.0h, 3.0h), half4(4.0h, 5.0h, 6.0h, 7.0h), half4(8.0h, 9.0h, 10.0h, 11.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = half3x4((*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.ir.msl
index 76fae16..2d6063d 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float3x4* out [[buffer(0)]]) {
   thread float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = float3x4((*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.ir.msl
index 3e2e29c..5ae677e 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.ir.msl
@@ -5,6 +5,6 @@
 };
 
 kernel void f(device float3x4* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   (*tint_module_vars.out) = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f16.wgsl.expected.ir.msl
index 3bc3c94..a11adf4 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half3x4* out [[buffer(0)]]) {
   thread half3x4 m = half3x4(half4(0.0h, 1.0h, 2.0h, 3.0h), half4(4.0h, 5.0h, 6.0h, 7.0h), half4(8.0h, 9.0h, 10.0h, 11.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.ir.msl
index 87e836e..3410a47 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float3x4* out [[buffer(0)]]) {
   thread float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.ir.msl
index 3e2e29c..5ae677e 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.ir.msl
@@ -5,6 +5,6 @@
 };
 
 kernel void f(device float3x4* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   (*tint_module_vars.out) = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
 }
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f16.wgsl.expected.ir.msl
index 3bc3c94..a11adf4 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half3x4* out [[buffer(0)]]) {
   thread half3x4 m = half3x4(half4(0.0h, 1.0h, 2.0h, 3.0h), half4(4.0h, 5.0h, 6.0h, 7.0h), half4(8.0h, 9.0h, 10.0h, 11.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.ir.msl
index 87e836e..3410a47 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float3x4* out [[buffer(0)]]) {
   thread float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat3x4/load/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/load/f16.wgsl.expected.ir.msl
index 91ef6da..2326064 100644
--- a/test/tint/expressions/type_ctor/mat3x4/load/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/load/f16.wgsl.expected.ir.msl
@@ -5,7 +5,7 @@
 };
 
 kernel void f(device half3x4* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   half3x4 m = half3x4(half4(0.0h), half4(0.0h), half4(0.0h));
   (*tint_module_vars.out) = half3x4(m);
 }
diff --git a/test/tint/expressions/type_ctor/mat3x4/load/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/load/f32.wgsl.expected.ir.msl
index d7a1834..756d9b8 100644
--- a/test/tint/expressions/type_ctor/mat3x4/load/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/load/f32.wgsl.expected.ir.msl
@@ -5,7 +5,7 @@
 };
 
 kernel void f(device float3x4* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   float3x4 m = float3x4(float4(0.0f), float4(0.0f), float4(0.0f));
   (*tint_module_vars.out) = float3x4(m);
 }
diff --git a/test/tint/expressions/type_ctor/mat3x4/zero/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/zero/f16.wgsl.expected.ir.msl
index ce0e634..de8049b 100644
--- a/test/tint/expressions/type_ctor/mat3x4/zero/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/zero/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half3x4* out [[buffer(0)]]) {
   thread half3x4 m = half3x4(half4(0.0h), half4(0.0h), half4(0.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.ir.msl
index f87e279..b0c0436 100644
--- a/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float3x4* out [[buffer(0)]]) {
   thread float3x4 m = float3x4(float4(0.0f), float4(0.0f), float4(0.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f16.wgsl.expected.ir.msl
index 682cf05..c545d09 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half4x2* out [[buffer(0)]]) {
   thread half4x2 m = half4x2(half2(0.0h, 1.0h), half2(2.0h, 3.0h), half2(4.0h, 5.0h), half2(6.0h, 7.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = half4x2((*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.ir.msl
index 5fd8f2b..8552707 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float4x2* out [[buffer(0)]]) {
   thread float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = float4x2((*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f16.wgsl.expected.ir.msl
index fe8aa1a..27d1778 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half4x2* out [[buffer(0)]]) {
   thread half4x2 m = half4x2(half2(0.0h, 1.0h), half2(2.0h, 3.0h), half2(4.0h, 5.0h), half2(6.0h, 7.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.ir.msl
index 2beb638..a063ad5 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float4x2* out [[buffer(0)]]) {
   thread float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f16.wgsl.expected.ir.msl
index fe8aa1a..27d1778 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half4x2* out [[buffer(0)]]) {
   thread half4x2 m = half4x2(half2(0.0h, 1.0h), half2(2.0h, 3.0h), half2(4.0h, 5.0h), half2(6.0h, 7.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.ir.msl
index 2beb638..a063ad5 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float4x2* out [[buffer(0)]]) {
   thread float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f16.wgsl.expected.ir.msl
index 682cf05..c545d09 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half4x2* out [[buffer(0)]]) {
   thread half4x2 m = half4x2(half2(0.0h, 1.0h), half2(2.0h, 3.0h), half2(4.0h, 5.0h), half2(6.0h, 7.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = half4x2((*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.ir.msl
index 5fd8f2b..8552707 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float4x2* out [[buffer(0)]]) {
   thread float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = float4x2((*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.ir.msl
index 4213fd0..be1b004 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.ir.msl
@@ -5,6 +5,6 @@
 };
 
 kernel void f(device float4x2* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   (*tint_module_vars.out) = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f16.wgsl.expected.ir.msl
index fe8aa1a..27d1778 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half4x2* out [[buffer(0)]]) {
   thread half4x2 m = half4x2(half2(0.0h, 1.0h), half2(2.0h, 3.0h), half2(4.0h, 5.0h), half2(6.0h, 7.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.ir.msl
index 2beb638..a063ad5 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float4x2* out [[buffer(0)]]) {
   thread float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.ir.msl
index 4213fd0..be1b004 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.ir.msl
@@ -5,6 +5,6 @@
 };
 
 kernel void f(device float4x2* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   (*tint_module_vars.out) = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f16.wgsl.expected.ir.msl
index fe8aa1a..27d1778 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half4x2* out [[buffer(0)]]) {
   thread half4x2 m = half4x2(half2(0.0h, 1.0h), half2(2.0h, 3.0h), half2(4.0h, 5.0h), half2(6.0h, 7.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.ir.msl
index 2beb638..a063ad5 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float4x2* out [[buffer(0)]]) {
   thread float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat4x2/load/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/load/f16.wgsl.expected.ir.msl
index f9b6e38..56d34ec 100644
--- a/test/tint/expressions/type_ctor/mat4x2/load/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/load/f16.wgsl.expected.ir.msl
@@ -5,7 +5,7 @@
 };
 
 kernel void f(device half4x2* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   half4x2 m = half4x2(half2(0.0h), half2(0.0h), half2(0.0h), half2(0.0h));
   (*tint_module_vars.out) = half4x2(m);
 }
diff --git a/test/tint/expressions/type_ctor/mat4x2/load/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/load/f32.wgsl.expected.ir.msl
index 4232333..be15bfd 100644
--- a/test/tint/expressions/type_ctor/mat4x2/load/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/load/f32.wgsl.expected.ir.msl
@@ -5,7 +5,7 @@
 };
 
 kernel void f(device float4x2* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   float4x2 m = float4x2(float2(0.0f), float2(0.0f), float2(0.0f), float2(0.0f));
   (*tint_module_vars.out) = float4x2(m);
 }
diff --git a/test/tint/expressions/type_ctor/mat4x2/zero/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/zero/f16.wgsl.expected.ir.msl
index 9004e83..25a419c 100644
--- a/test/tint/expressions/type_ctor/mat4x2/zero/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/zero/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half4x2* out [[buffer(0)]]) {
   thread half4x2 m = half4x2(half2(0.0h), half2(0.0h), half2(0.0h), half2(0.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.ir.msl
index fab4f75..9d9f824 100644
--- a/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float4x2* out [[buffer(0)]]) {
   thread float4x2 m = float4x2(float2(0.0f), float2(0.0f), float2(0.0f), float2(0.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f16.wgsl.expected.ir.msl
index 7f337f7..ce94fdc 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f16.wgsl.expected.ir.msl
@@ -13,6 +13,6 @@
 }
 kernel void f(device half4x3* out [[buffer(0)]]) {
   thread half4x3 m = half4x3(half3(0.0h, 1.0h, 2.0h), half3(3.0h, 4.0h, 5.0h), half3(6.0h, 7.0h, 8.0h), half3(9.0h, 10.0h, 11.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, half4x3((*tint_module_vars.m)));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.ir.msl
index ddbce20..a6e6823 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.ir.msl
@@ -13,6 +13,6 @@
 }
 kernel void f(device float4x3* out [[buffer(0)]]) {
   thread float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, float4x3((*tint_module_vars.m)));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f16.wgsl.expected.ir.msl
index 93e1d80..42f62c5 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f16.wgsl.expected.ir.msl
@@ -13,6 +13,6 @@
 }
 kernel void f(device half4x3* out [[buffer(0)]]) {
   thread half4x3 m = half4x3(half3(0.0h, 1.0h, 2.0h), half3(3.0h, 4.0h, 5.0h), half3(6.0h, 7.0h, 8.0h), half3(9.0h, 10.0h, 11.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.ir.msl
index 113532e..0ce5be1 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.ir.msl
@@ -13,6 +13,6 @@
 }
 kernel void f(device float4x3* out [[buffer(0)]]) {
   thread float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f16.wgsl.expected.ir.msl
index 93e1d80..42f62c5 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f16.wgsl.expected.ir.msl
@@ -13,6 +13,6 @@
 }
 kernel void f(device half4x3* out [[buffer(0)]]) {
   thread half4x3 m = half4x3(half3(0.0h, 1.0h, 2.0h), half3(3.0h, 4.0h, 5.0h), half3(6.0h, 7.0h, 8.0h), half3(9.0h, 10.0h, 11.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.ir.msl
index 113532e..0ce5be1 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.ir.msl
@@ -13,6 +13,6 @@
 }
 kernel void f(device float4x3* out [[buffer(0)]]) {
   thread float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f16.wgsl.expected.ir.msl
index 7f337f7..ce94fdc 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f16.wgsl.expected.ir.msl
@@ -13,6 +13,6 @@
 }
 kernel void f(device half4x3* out [[buffer(0)]]) {
   thread half4x3 m = half4x3(half3(0.0h, 1.0h, 2.0h), half3(3.0h, 4.0h, 5.0h), half3(6.0h, 7.0h, 8.0h), half3(9.0h, 10.0h, 11.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, half4x3((*tint_module_vars.m)));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.ir.msl
index ddbce20..a6e6823 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.ir.msl
@@ -13,6 +13,6 @@
 }
 kernel void f(device float4x3* out [[buffer(0)]]) {
   thread float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, float4x3((*tint_module_vars.m)));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.ir.msl
index a659c88..1ab6c0d 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.ir.msl
@@ -11,6 +11,6 @@
   (*target)[3u] = value_param[3u];
 }
 kernel void f(device float4x3* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f)));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f16.wgsl.expected.ir.msl
index 93e1d80..42f62c5 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f16.wgsl.expected.ir.msl
@@ -13,6 +13,6 @@
 }
 kernel void f(device half4x3* out [[buffer(0)]]) {
   thread half4x3 m = half4x3(half3(0.0h, 1.0h, 2.0h), half3(3.0h, 4.0h, 5.0h), half3(6.0h, 7.0h, 8.0h), half3(9.0h, 10.0h, 11.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.ir.msl
index 113532e..0ce5be1 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.ir.msl
@@ -13,6 +13,6 @@
 }
 kernel void f(device float4x3* out [[buffer(0)]]) {
   thread float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.ir.msl
index a659c88..1ab6c0d 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.ir.msl
@@ -11,6 +11,6 @@
   (*target)[3u] = value_param[3u];
 }
 kernel void f(device float4x3* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f)));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f16.wgsl.expected.ir.msl
index 93e1d80..42f62c5 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f16.wgsl.expected.ir.msl
@@ -13,6 +13,6 @@
 }
 kernel void f(device half4x3* out [[buffer(0)]]) {
   thread half4x3 m = half4x3(half3(0.0h, 1.0h, 2.0h), half3(3.0h, 4.0h, 5.0h), half3(6.0h, 7.0h, 8.0h), half3(9.0h, 10.0h, 11.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.ir.msl
index 113532e..0ce5be1 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.ir.msl
@@ -13,6 +13,6 @@
 }
 kernel void f(device float4x3* out [[buffer(0)]]) {
   thread float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/load/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/load/f16.wgsl.expected.ir.msl
index a781ea3..cb2dffd 100644
--- a/test/tint/expressions/type_ctor/mat4x3/load/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/load/f16.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
   (*target)[3u] = value_param[3u];
 }
 kernel void f(device half4x3* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   half4x3 m = half4x3(half3(0.0h), half3(0.0h), half3(0.0h), half3(0.0h));
   tint_store_and_preserve_padding(tint_module_vars.out, half4x3(m));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/load/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/load/f32.wgsl.expected.ir.msl
index 8c4aef5..ff67e14 100644
--- a/test/tint/expressions/type_ctor/mat4x3/load/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/load/f32.wgsl.expected.ir.msl
@@ -11,7 +11,7 @@
   (*target)[3u] = value_param[3u];
 }
 kernel void f(device float4x3* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   float4x3 m = float4x3(float3(0.0f), float3(0.0f), float3(0.0f), float3(0.0f));
   tint_store_and_preserve_padding(tint_module_vars.out, float4x3(m));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/zero/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/zero/f16.wgsl.expected.ir.msl
index 7ba6fe0..066c940 100644
--- a/test/tint/expressions/type_ctor/mat4x3/zero/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/zero/f16.wgsl.expected.ir.msl
@@ -13,6 +13,6 @@
 }
 kernel void f(device half4x3* out [[buffer(0)]]) {
   thread half4x3 m = half4x3(half3(0.0h), half3(0.0h), half3(0.0h), half3(0.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.ir.msl
index fd2382b..6053880 100644
--- a/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.ir.msl
@@ -13,6 +13,6 @@
 }
 kernel void f(device float4x3* out [[buffer(0)]]) {
   thread float4x3 m = float4x3(float3(0.0f), float3(0.0f), float3(0.0f), float3(0.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f16.wgsl.expected.ir.msl
index 5366300..fb2e74c 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half4x4* out [[buffer(0)]]) {
   thread half4x4 m = half4x4(half4(0.0h, 1.0h, 2.0h, 3.0h), half4(4.0h, 5.0h, 6.0h, 7.0h), half4(8.0h, 9.0h, 10.0h, 11.0h), half4(12.0h, 13.0h, 14.0h, 15.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = half4x4((*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.ir.msl
index fa069a1..10fa6b1 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float4x4* out [[buffer(0)]]) {
   thread float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = float4x4((*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f16.wgsl.expected.ir.msl
index 1c7f1e0..2de37c9 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half4x4* out [[buffer(0)]]) {
   thread half4x4 m = half4x4(half4(0.0h, 1.0h, 2.0h, 3.0h), half4(4.0h, 5.0h, 6.0h, 7.0h), half4(8.0h, 9.0h, 10.0h, 11.0h), half4(12.0h, 13.0h, 14.0h, 15.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.ir.msl
index 7b8a342..843bb49 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float4x4* out [[buffer(0)]]) {
   thread float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f16.wgsl.expected.ir.msl
index 1c7f1e0..2de37c9 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half4x4* out [[buffer(0)]]) {
   thread half4x4 m = half4x4(half4(0.0h, 1.0h, 2.0h, 3.0h), half4(4.0h, 5.0h, 6.0h, 7.0h), half4(8.0h, 9.0h, 10.0h, 11.0h), half4(12.0h, 13.0h, 14.0h, 15.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.ir.msl
index 7b8a342..843bb49 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float4x4* out [[buffer(0)]]) {
   thread float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f16.wgsl.expected.ir.msl
index 5366300..fb2e74c 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half4x4* out [[buffer(0)]]) {
   thread half4x4 m = half4x4(half4(0.0h, 1.0h, 2.0h, 3.0h), half4(4.0h, 5.0h, 6.0h, 7.0h), half4(8.0h, 9.0h, 10.0h, 11.0h), half4(12.0h, 13.0h, 14.0h, 15.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = half4x4((*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.ir.msl
index fa069a1..10fa6b1 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float4x4* out [[buffer(0)]]) {
   thread float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = float4x4((*tint_module_vars.m));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.ir.msl
index 80649b5..544c5cf 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.ir.msl
@@ -5,6 +5,6 @@
 };
 
 kernel void f(device float4x4* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   (*tint_module_vars.out) = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f16.wgsl.expected.ir.msl
index 1c7f1e0..2de37c9 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half4x4* out [[buffer(0)]]) {
   thread half4x4 m = half4x4(half4(0.0h, 1.0h, 2.0h, 3.0h), half4(4.0h, 5.0h, 6.0h, 7.0h), half4(8.0h, 9.0h, 10.0h, 11.0h), half4(12.0h, 13.0h, 14.0h, 15.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.ir.msl
index 7b8a342..843bb49 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float4x4* out [[buffer(0)]]) {
   thread float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.ir.msl
index 80649b5..544c5cf 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.ir.msl
@@ -5,6 +5,6 @@
 };
 
 kernel void f(device float4x4* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   (*tint_module_vars.out) = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
 }
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f16.wgsl.expected.ir.msl
index 1c7f1e0..2de37c9 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half4x4* out [[buffer(0)]]) {
   thread half4x4 m = half4x4(half4(0.0h, 1.0h, 2.0h, 3.0h), half4(4.0h, 5.0h, 6.0h, 7.0h), half4(8.0h, 9.0h, 10.0h, 11.0h), half4(12.0h, 13.0h, 14.0h, 15.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.ir.msl
index 7b8a342..843bb49 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float4x4* out [[buffer(0)]]) {
   thread float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat4x4/load/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/load/f16.wgsl.expected.ir.msl
index 7f0df97..3efbaab 100644
--- a/test/tint/expressions/type_ctor/mat4x4/load/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/load/f16.wgsl.expected.ir.msl
@@ -5,7 +5,7 @@
 };
 
 kernel void f(device half4x4* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   half4x4 m = half4x4(half4(0.0h), half4(0.0h), half4(0.0h), half4(0.0h));
   (*tint_module_vars.out) = half4x4(m);
 }
diff --git a/test/tint/expressions/type_ctor/mat4x4/load/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/load/f32.wgsl.expected.ir.msl
index 5e621d2..f11658c 100644
--- a/test/tint/expressions/type_ctor/mat4x4/load/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/load/f32.wgsl.expected.ir.msl
@@ -5,7 +5,7 @@
 };
 
 kernel void f(device float4x4* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   float4x4 m = float4x4(float4(0.0f), float4(0.0f), float4(0.0f), float4(0.0f));
   (*tint_module_vars.out) = float4x4(m);
 }
diff --git a/test/tint/expressions/type_ctor/mat4x4/zero/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/zero/f16.wgsl.expected.ir.msl
index 546cb14..d03c14f 100644
--- a/test/tint/expressions/type_ctor/mat4x4/zero/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/zero/f16.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device half4x4* out [[buffer(0)]]) {
   thread half4x4 m = half4x4(half4(0.0h), half4(0.0h), half4(0.0h), half4(0.0h));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.ir.msl
index 6c53af1..6d858ea 100644
--- a/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.ir.msl
@@ -7,6 +7,6 @@
 
 kernel void f(device float4x4* out [[buffer(0)]]) {
   thread float4x4 m = float4x4(float4(0.0f), float4(0.0f), float4(0.0f), float4(0.0f));
-  tint_module_vars_struct const tint_module_vars = {.m=(&m), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.m);
 }
diff --git a/test/tint/identifiers/underscore/double/alias.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/double/alias.wgsl.expected.ir.msl
index 72701cb..e13b334 100644
--- a/test/tint/identifiers/underscore/double/alias.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/double/alias.wgsl.expected.ir.msl
@@ -5,7 +5,7 @@
 };
 
 kernel void f(device int* s [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s};
   int c = 0;
   int d = 0;
   (*tint_module_vars.s) = (c + d);
diff --git a/test/tint/identifiers/underscore/double/const.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/double/const.wgsl.expected.ir.msl
index b4da174..b80529e 100644
--- a/test/tint/identifiers/underscore/double/const.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/double/const.wgsl.expected.ir.msl
@@ -5,6 +5,6 @@
 };
 
 kernel void f(device int* s [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s};
   (*tint_module_vars.s) = 3;
 }
diff --git a/test/tint/identifiers/underscore/double/let.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/double/let.wgsl.expected.ir.msl
index 4a1d8ab..a73f1bc 100644
--- a/test/tint/identifiers/underscore/double/let.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/double/let.wgsl.expected.ir.msl
@@ -5,7 +5,7 @@
 };
 
 kernel void f(device int* s [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s};
   int const a = 1;
   int const a__ = a;
   int const b = a;
diff --git a/test/tint/identifiers/underscore/double/parameter.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/double/parameter.wgsl.expected.ir.msl
index 58219fa..1f600df 100644
--- a/test/tint/identifiers/underscore/double/parameter.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/double/parameter.wgsl.expected.ir.msl
@@ -9,6 +9,6 @@
   (*tint_module_vars.s) = b;
 }
 kernel void tint_symbol(device int* s [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s};
   f(1, tint_module_vars);
 }
diff --git a/test/tint/identifiers/underscore/double/struct.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/double/struct.wgsl.expected.ir.msl
index 13991e1..3675336 100644
--- a/test/tint/identifiers/underscore/double/struct.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/double/struct.wgsl.expected.ir.msl
@@ -8,7 +8,7 @@
 };
 
 kernel void f(device int* s [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s};
   a__ const c = a__{};
   int const d = c.b__;
   (*tint_module_vars.s) = (c.b__ + d);
diff --git a/test/tint/identifiers/underscore/double/var.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/double/var.wgsl.expected.ir.msl
index eec150f..34c0b83 100644
--- a/test/tint/identifiers/underscore/double/var.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/double/var.wgsl.expected.ir.msl
@@ -9,7 +9,7 @@
 kernel void f(device int* s [[buffer(0)]]) {
   thread int a = 1;
   thread int a__ = 2;
-  tint_module_vars_struct const tint_module_vars = {.s=s, .a=(&a), .a__=(&a__)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s, .a=(&a), .a__=(&a__)};
   int b = (*tint_module_vars.a);
   int b__ = (*tint_module_vars.a__);
   (*tint_module_vars.s) = (b + b__);
diff --git a/test/tint/identifiers/underscore/prefix/lower/alias.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/prefix/lower/alias.wgsl.expected.ir.msl
index 72701cb..e13b334 100644
--- a/test/tint/identifiers/underscore/prefix/lower/alias.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/prefix/lower/alias.wgsl.expected.ir.msl
@@ -5,7 +5,7 @@
 };
 
 kernel void f(device int* s [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s};
   int c = 0;
   int d = 0;
   (*tint_module_vars.s) = (c + d);
diff --git a/test/tint/identifiers/underscore/prefix/lower/const.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/prefix/lower/const.wgsl.expected.ir.msl
index b4da174..b80529e 100644
--- a/test/tint/identifiers/underscore/prefix/lower/const.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/prefix/lower/const.wgsl.expected.ir.msl
@@ -5,6 +5,6 @@
 };
 
 kernel void f(device int* s [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s};
   (*tint_module_vars.s) = 3;
 }
diff --git a/test/tint/identifiers/underscore/prefix/lower/let.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/prefix/lower/let.wgsl.expected.ir.msl
index 79209c7..ad9ecc5 100644
--- a/test/tint/identifiers/underscore/prefix/lower/let.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/prefix/lower/let.wgsl.expected.ir.msl
@@ -5,7 +5,7 @@
 };
 
 kernel void f(device int* s [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s};
   int const a = 1;
   int const _a = a;
   int const b = a;
diff --git a/test/tint/identifiers/underscore/prefix/lower/parameter.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/prefix/lower/parameter.wgsl.expected.ir.msl
index 0c594d0..2efe5aec 100644
--- a/test/tint/identifiers/underscore/prefix/lower/parameter.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/prefix/lower/parameter.wgsl.expected.ir.msl
@@ -9,6 +9,6 @@
   (*tint_module_vars.s) = b;
 }
 kernel void tint_symbol(device int* s [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s};
   f(1, tint_module_vars);
 }
diff --git a/test/tint/identifiers/underscore/prefix/lower/struct.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/prefix/lower/struct.wgsl.expected.ir.msl
index b2a502f..434ad25 100644
--- a/test/tint/identifiers/underscore/prefix/lower/struct.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/prefix/lower/struct.wgsl.expected.ir.msl
@@ -8,7 +8,7 @@
 };
 
 kernel void f(device int* s [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s};
   _a const c = _a{};
   int const d = c._b;
   (*tint_module_vars.s) = (c._b + d);
diff --git a/test/tint/identifiers/underscore/prefix/lower/var.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/prefix/lower/var.wgsl.expected.ir.msl
index 001f6c4..b8f38ec 100644
--- a/test/tint/identifiers/underscore/prefix/lower/var.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/prefix/lower/var.wgsl.expected.ir.msl
@@ -9,7 +9,7 @@
 kernel void f(device int* s [[buffer(0)]]) {
   thread int a = 1;
   thread int _a = 2;
-  tint_module_vars_struct const tint_module_vars = {.s=s, .a=(&a), ._a=(&_a)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s, .a=(&a), ._a=(&_a)};
   int b = (*tint_module_vars.a);
   int _b = (*tint_module_vars._a);
   (*tint_module_vars.s) = (b + _b);
diff --git a/test/tint/identifiers/underscore/prefix/upper/alias.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/prefix/upper/alias.wgsl.expected.ir.msl
index 72701cb..e13b334 100644
--- a/test/tint/identifiers/underscore/prefix/upper/alias.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/prefix/upper/alias.wgsl.expected.ir.msl
@@ -5,7 +5,7 @@
 };
 
 kernel void f(device int* s [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s};
   int c = 0;
   int d = 0;
   (*tint_module_vars.s) = (c + d);
diff --git a/test/tint/identifiers/underscore/prefix/upper/let.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/prefix/upper/let.wgsl.expected.ir.msl
index ba974b4..2a88a4c 100644
--- a/test/tint/identifiers/underscore/prefix/upper/let.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/prefix/upper/let.wgsl.expected.ir.msl
@@ -5,7 +5,7 @@
 };
 
 kernel void f(device int* s [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s};
   int const A = 1;
   int const _A = 2;
   int const B = A;
diff --git a/test/tint/identifiers/underscore/prefix/upper/parameter.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/prefix/upper/parameter.wgsl.expected.ir.msl
index 6553670..8ff069f 100644
--- a/test/tint/identifiers/underscore/prefix/upper/parameter.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/prefix/upper/parameter.wgsl.expected.ir.msl
@@ -9,6 +9,6 @@
   (*tint_module_vars.s) = B;
 }
 kernel void tint_symbol(device int* s [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s};
   f(1, tint_module_vars);
 }
diff --git a/test/tint/identifiers/underscore/prefix/upper/struct.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/prefix/upper/struct.wgsl.expected.ir.msl
index 978dc46..59addf9 100644
--- a/test/tint/identifiers/underscore/prefix/upper/struct.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/prefix/upper/struct.wgsl.expected.ir.msl
@@ -8,7 +8,7 @@
 };
 
 kernel void f(device int* s [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s};
   _A const c = _A{};
   int const d = c._B;
   (*tint_module_vars.s) = (c._B + d);
diff --git a/test/tint/identifiers/underscore/prefix/upper/var.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/prefix/upper/var.wgsl.expected.ir.msl
index 3bf815f..0dae34c 100644
--- a/test/tint/identifiers/underscore/prefix/upper/var.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/prefix/upper/var.wgsl.expected.ir.msl
@@ -9,7 +9,7 @@
 kernel void f(device int* s [[buffer(0)]]) {
   thread int A = 1;
   thread int _A = 2;
-  tint_module_vars_struct const tint_module_vars = {.s=s, .A=(&A), ._A=(&_A)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s, .A=(&A), ._A=(&_A)};
   int B = (*tint_module_vars.A);
   int _B = (*tint_module_vars._A);
   (*tint_module_vars.s) = (B + _B);
diff --git a/test/tint/layout/storage/mat2x2/f32.wgsl.expected.ir.msl b/test/tint/layout/storage/mat2x2/f32.wgsl.expected.ir.msl
index 83f2ad3..018df46 100644
--- a/test/tint/layout/storage/mat2x2/f32.wgsl.expected.ir.msl
+++ b/test/tint/layout/storage/mat2x2/f32.wgsl.expected.ir.msl
@@ -8,7 +8,7 @@
 };
 
 kernel void f(device SSBO* ssbo [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.ssbo=ssbo};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.ssbo=ssbo};
   float2x2 const v = (*tint_module_vars.ssbo).m;
   (*tint_module_vars.ssbo).m = v;
 }
diff --git a/test/tint/out_of_order_decls/array/alias.wgsl.expected.ir.msl b/test/tint/out_of_order_decls/array/alias.wgsl.expected.ir.msl
index ae31a83..aa933c6 100644
--- a/test/tint/out_of_order_decls/array/alias.wgsl.expected.ir.msl
+++ b/test/tint/out_of_order_decls/array/alias.wgsl.expected.ir.msl
@@ -18,6 +18,6 @@
 
 fragment void f() {
   thread tint_array<int, 4> A = {};
-  tint_module_vars_struct const tint_module_vars = {.A=(&A)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.A=(&A)};
   (*tint_module_vars.A)[0] = 1;
 }
diff --git a/test/tint/out_of_order_decls/array/struct.wgsl.expected.ir.msl b/test/tint/out_of_order_decls/array/struct.wgsl.expected.ir.msl
index ff62074..b3f3d84 100644
--- a/test/tint/out_of_order_decls/array/struct.wgsl.expected.ir.msl
+++ b/test/tint/out_of_order_decls/array/struct.wgsl.expected.ir.msl
@@ -21,6 +21,6 @@
 
 fragment void f() {
   thread tint_array<S, 4> A = {};
-  tint_module_vars_struct const tint_module_vars = {.A=(&A)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.A=(&A)};
   (*tint_module_vars.A)[0] = S{.m=1};
 }
diff --git a/test/tint/out_of_order_decls/func/var.wgsl.expected.ir.msl b/test/tint/out_of_order_decls/func/var.wgsl.expected.ir.msl
index 7f63f6a..71610a4 100644
--- a/test/tint/out_of_order_decls/func/var.wgsl.expected.ir.msl
+++ b/test/tint/out_of_order_decls/func/var.wgsl.expected.ir.msl
@@ -6,6 +6,6 @@
 
 fragment void f() {
   thread int a = 1;
-  tint_module_vars_struct const tint_module_vars = {.a=(&a)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=(&a)};
   int const b = (*tint_module_vars.a);
 }
diff --git a/test/tint/ptr_ref/load/global/i32.spvasm.expected.ir.msl b/test/tint/ptr_ref/load/global/i32.spvasm.expected.ir.msl
index a93fc0f..4fcfd30 100644
--- a/test/tint/ptr_ref/load/global/i32.spvasm.expected.ir.msl
+++ b/test/tint/ptr_ref/load/global/i32.spvasm.expected.ir.msl
@@ -9,6 +9,6 @@
 }
 kernel void tint_symbol() {
   thread int I = 0;
-  tint_module_vars_struct const tint_module_vars = {.I=(&I)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.I=(&I)};
   main_1(tint_module_vars);
 }
diff --git a/test/tint/ptr_ref/load/global/i32.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/global/i32.wgsl.expected.ir.msl
index 80853a1..34264e5 100644
--- a/test/tint/ptr_ref/load/global/i32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/global/i32.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 
 kernel void tint_symbol() {
   thread int I = 0;
-  tint_module_vars_struct const tint_module_vars = {.I=(&I)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.I=(&I)};
   int const i = (*tint_module_vars.I);
   int const u = (i + 1);
 }
diff --git a/test/tint/ptr_ref/load/global/struct_field.spvasm.expected.ir.msl b/test/tint/ptr_ref/load/global/struct_field.spvasm.expected.ir.msl
index 5335a0a..beb3865 100644
--- a/test/tint/ptr_ref/load/global/struct_field.spvasm.expected.ir.msl
+++ b/test/tint/ptr_ref/load/global/struct_field.spvasm.expected.ir.msl
@@ -13,6 +13,6 @@
 }
 kernel void tint_symbol() {
   thread S V = {};
-  tint_module_vars_struct const tint_module_vars = {.V=(&V)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.V=(&V)};
   main_1(tint_module_vars);
 }
diff --git a/test/tint/ptr_ref/load/global/struct_field.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/global/struct_field.wgsl.expected.ir.msl
index 07b75d3..35bf230 100644
--- a/test/tint/ptr_ref/load/global/struct_field.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/global/struct_field.wgsl.expected.ir.msl
@@ -9,6 +9,6 @@
 
 kernel void tint_symbol() {
   thread S V = {};
-  tint_module_vars_struct const tint_module_vars = {.V=(&V)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.V=(&V)};
   int const i = (*tint_module_vars.V).i;
 }
diff --git a/test/tint/ptr_ref/load/local/ptr_private.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/local/ptr_private.wgsl.expected.ir.msl
index e5c9cac..abfb0b9 100644
--- a/test/tint/ptr_ref/load/local/ptr_private.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/local/ptr_private.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 
 kernel void tint_symbol() {
   thread int i = 123;
-  tint_module_vars_struct const tint_module_vars = {.i=(&i)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.i=(&i)};
   thread int* const p = tint_module_vars.i;
   int const u = ((*p) + 1);
 }
diff --git a/test/tint/ptr_ref/load/local/ptr_storage.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/local/ptr_storage.wgsl.expected.ir.msl
index 965bab3..188cec7 100644
--- a/test/tint/ptr_ref/load/local/ptr_storage.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/local/ptr_storage.wgsl.expected.ir.msl
@@ -8,7 +8,7 @@
 };
 
 kernel void tint_symbol(device S* v [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.v=v};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.v=v};
   device int* const p = (&(*tint_module_vars.v).a);
   int const u = ((*p) + 1);
 }
diff --git a/test/tint/ptr_ref/load/local/ptr_uniform.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/local/ptr_uniform.wgsl.expected.ir.msl
index 281ed39..2e61682 100644
--- a/test/tint/ptr_ref/load/local/ptr_uniform.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/local/ptr_uniform.wgsl.expected.ir.msl
@@ -8,7 +8,7 @@
 };
 
 kernel void tint_symbol(const constant S* v [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.v=v};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.v=v};
   const constant int* const p = (&(*tint_module_vars.v).a);
   int const u = ((*p) + 1);
 }
diff --git a/test/tint/ptr_ref/load/param/private/array_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/private/array_in_struct.wgsl.expected.ir.msl
index 298deac..dc6a25c 100644
--- a/test/tint/ptr_ref/load/param/private/array_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/private/array_in_struct.wgsl.expected.ir.msl
@@ -24,6 +24,6 @@
 }
 kernel void tint_symbol() {
   thread str P = {};
-  tint_module_vars_struct const tint_module_vars = {.P=(&P)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.P=(&P)};
   tint_array<int, 4> const r = func((&(*tint_module_vars.P).arr));
 }
diff --git a/test/tint/ptr_ref/load/param/private/i32.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/private/i32.wgsl.expected.ir.msl
index 4030324..512b573 100644
--- a/test/tint/ptr_ref/load/param/private/i32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/private/i32.wgsl.expected.ir.msl
@@ -9,6 +9,6 @@
 }
 kernel void tint_symbol() {
   thread int P = 0;
-  tint_module_vars_struct const tint_module_vars = {.P=(&P)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.P=(&P)};
   int const r = func(tint_module_vars.P);
 }
diff --git a/test/tint/ptr_ref/load/param/private/i32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/private/i32_in_struct.wgsl.expected.ir.msl
index c68a38e..5bde080 100644
--- a/test/tint/ptr_ref/load/param/private/i32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/private/i32_in_struct.wgsl.expected.ir.msl
@@ -12,6 +12,6 @@
 }
 kernel void tint_symbol() {
   thread str P = {};
-  tint_module_vars_struct const tint_module_vars = {.P=(&P)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.P=(&P)};
   int const r = func((&(*tint_module_vars.P).i));
 }
diff --git a/test/tint/ptr_ref/load/param/private/struct_in_array.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/private/struct_in_array.wgsl.expected.ir.msl
index 39f93db..3494864 100644
--- a/test/tint/ptr_ref/load/param/private/struct_in_array.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/private/struct_in_array.wgsl.expected.ir.msl
@@ -24,6 +24,6 @@
 }
 kernel void tint_symbol() {
   thread tint_array<str, 4> P = {};
-  tint_module_vars_struct const tint_module_vars = {.P=(&P)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.P=(&P)};
   str const r = func((&(*tint_module_vars.P)[2]));
 }
diff --git a/test/tint/ptr_ref/load/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
index 4ebd764..7b3a5ce 100644
--- a/test/tint/ptr_ref/load/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
@@ -9,6 +9,6 @@
 }
 kernel void tint_symbol() {
   thread float2x2 P = float2x2(0.0f);
-  tint_module_vars_struct const tint_module_vars = {.P=(&P)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.P=(&P)};
   float2 const r = func((&(*tint_module_vars.P)[1]));
 }
diff --git a/test/tint/ptr_ref/load/param/private/vec4_f32.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/private/vec4_f32.wgsl.expected.ir.msl
index aec9649..a99e27f 100644
--- a/test/tint/ptr_ref/load/param/private/vec4_f32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/private/vec4_f32.wgsl.expected.ir.msl
@@ -9,6 +9,6 @@
 }
 kernel void tint_symbol() {
   thread float4 P = 0.0f;
-  tint_module_vars_struct const tint_module_vars = {.P=(&P)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.P=(&P)};
   float4 const r = func(tint_module_vars.P);
 }
diff --git a/test/tint/ptr_ref/load/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
index 676b6ec..8299cfd 100644
--- a/test/tint/ptr_ref/load/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
@@ -9,6 +9,6 @@
 }
 kernel void tint_symbol() {
   thread float2x4 P = float2x4(0.0f);
-  tint_module_vars_struct const tint_module_vars = {.P=(&P)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.P=(&P)};
   float4 const r = func((&(*tint_module_vars.P)[1]));
 }
diff --git a/test/tint/ptr_ref/load/param/private/vec4_f32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/private/vec4_f32_in_struct.wgsl.expected.ir.msl
index 19ff6e7..ac09cdb 100644
--- a/test/tint/ptr_ref/load/param/private/vec4_f32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/private/vec4_f32_in_struct.wgsl.expected.ir.msl
@@ -12,6 +12,6 @@
 }
 kernel void tint_symbol() {
   thread str P = {};
-  tint_module_vars_struct const tint_module_vars = {.P=(&P)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.P=(&P)};
   float4 const r = func((&(*tint_module_vars.P).i));
 }
diff --git a/test/tint/ptr_ref/load/param/storage/array_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/storage/array_in_struct.wgsl.expected.ir.msl
index 4cb3626..ad5e614 100644
--- a/test/tint/ptr_ref/load/param/storage/array_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/storage/array_in_struct.wgsl.expected.ir.msl
@@ -23,6 +23,6 @@
   return (*pointer);
 }
 kernel void tint_symbol(const device str* S [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.S=S};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.S=S};
   tint_array<int, 4> const r = func((&(*tint_module_vars.S).arr));
 }
diff --git a/test/tint/ptr_ref/load/param/storage/i32.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/storage/i32.wgsl.expected.ir.msl
index 3441b21..fd98d38 100644
--- a/test/tint/ptr_ref/load/param/storage/i32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/storage/i32.wgsl.expected.ir.msl
@@ -8,6 +8,6 @@
   return (*pointer);
 }
 kernel void tint_symbol(const device int* S [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.S=S};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.S=S};
   int const r = func(tint_module_vars.S);
 }
diff --git a/test/tint/ptr_ref/load/param/storage/i32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/storage/i32_in_struct.wgsl.expected.ir.msl
index 161ea8ec..db5eec3 100644
--- a/test/tint/ptr_ref/load/param/storage/i32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/storage/i32_in_struct.wgsl.expected.ir.msl
@@ -11,6 +11,6 @@
   return (*pointer);
 }
 kernel void tint_symbol(const device str* S [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.S=S};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.S=S};
   int const r = func((&(*tint_module_vars.S).i));
 }
diff --git a/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.msl
index 48224ae..73d2eee 100644
--- a/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.msl
@@ -23,6 +23,6 @@
   return (*pointer);
 }
 kernel void tint_symbol(const device tint_array<str, 4>* S [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.S=S};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.S=S};
   str const r = func((&(*tint_module_vars.S)[2]));
 }
diff --git a/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
index 053c395..75003d4 100644
--- a/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
@@ -8,6 +8,6 @@
   return (*pointer);
 }
 kernel void tint_symbol(const device float2x2* S [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.S=S};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.S=S};
   float2 const r = func((&(*tint_module_vars.S)[1]));
 }
diff --git a/test/tint/ptr_ref/load/param/storage/vec4_f32.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/storage/vec4_f32.wgsl.expected.ir.msl
index 73a59a6..be37ff1 100644
--- a/test/tint/ptr_ref/load/param/storage/vec4_f32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/storage/vec4_f32.wgsl.expected.ir.msl
@@ -8,6 +8,6 @@
   return (*pointer);
 }
 kernel void tint_symbol(const device float4* S [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.S=S};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.S=S};
   float4 const r = func(tint_module_vars.S);
 }
diff --git a/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
index b81ae3b..04c3a86 100644
--- a/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
@@ -8,6 +8,6 @@
   return (*pointer);
 }
 kernel void tint_symbol(const device float2x4* S [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.S=S};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.S=S};
   float4 const r = func((&(*tint_module_vars.S)[1]));
 }
diff --git a/test/tint/ptr_ref/load/param/storage/vec4_f32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/storage/vec4_f32_in_struct.wgsl.expected.ir.msl
index 924b036..b4edaab 100644
--- a/test/tint/ptr_ref/load/param/storage/vec4_f32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/storage/vec4_f32_in_struct.wgsl.expected.ir.msl
@@ -11,6 +11,6 @@
   return (*pointer);
 }
 kernel void tint_symbol(const device str* S [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.S=S};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.S=S};
   float4 const r = func((&(*tint_module_vars.S).i));
 }
diff --git a/test/tint/ptr_ref/load/param/uniform/array_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/uniform/array_in_struct.wgsl.expected.ir.msl
index b70d640..2d07f66 100644
--- a/test/tint/ptr_ref/load/param/uniform/array_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/uniform/array_in_struct.wgsl.expected.ir.msl
@@ -23,6 +23,6 @@
   return (*pointer);
 }
 kernel void tint_symbol(const constant str* S [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.S=S};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.S=S};
   tint_array<int4, 4> const r = func((&(*tint_module_vars.S).arr));
 }
diff --git a/test/tint/ptr_ref/load/param/uniform/i32.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/uniform/i32.wgsl.expected.ir.msl
index 3960789..f1c8f99 100644
--- a/test/tint/ptr_ref/load/param/uniform/i32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/uniform/i32.wgsl.expected.ir.msl
@@ -8,6 +8,6 @@
   return (*pointer);
 }
 kernel void tint_symbol(const constant int* S [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.S=S};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.S=S};
   int const r = func(tint_module_vars.S);
 }
diff --git a/test/tint/ptr_ref/load/param/uniform/i32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/uniform/i32_in_struct.wgsl.expected.ir.msl
index 8401c5a..124ac1d 100644
--- a/test/tint/ptr_ref/load/param/uniform/i32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/uniform/i32_in_struct.wgsl.expected.ir.msl
@@ -11,6 +11,6 @@
   return (*pointer);
 }
 kernel void tint_symbol(const constant str* S [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.S=S};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.S=S};
   int const r = func((&(*tint_module_vars.S).i));
 }
diff --git a/test/tint/ptr_ref/load/param/uniform/struct_in_array.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/uniform/struct_in_array.wgsl.expected.ir.msl
index ae82463..7cc2678 100644
--- a/test/tint/ptr_ref/load/param/uniform/struct_in_array.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/uniform/struct_in_array.wgsl.expected.ir.msl
@@ -23,6 +23,6 @@
   return (*pointer);
 }
 kernel void tint_symbol(const constant tint_array<str, 4>* S [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.S=S};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.S=S};
   str const r = func((&(*tint_module_vars.S)[2]));
 }
diff --git a/test/tint/ptr_ref/load/param/uniform/vec2_f32_in_mat2x2.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/uniform/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
index bfa4dcf..7fbb3c1 100644
--- a/test/tint/ptr_ref/load/param/uniform/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/uniform/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
@@ -8,6 +8,6 @@
   return (*pointer);
 }
 kernel void tint_symbol(const constant float2x2* S [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.S=S};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.S=S};
   float2 const r = func((&(*tint_module_vars.S)[1]));
 }
diff --git a/test/tint/ptr_ref/load/param/uniform/vec4_f32.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/uniform/vec4_f32.wgsl.expected.ir.msl
index e720076..d5f49e9 100644
--- a/test/tint/ptr_ref/load/param/uniform/vec4_f32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/uniform/vec4_f32.wgsl.expected.ir.msl
@@ -8,6 +8,6 @@
   return (*pointer);
 }
 kernel void tint_symbol(const constant float4* S [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.S=S};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.S=S};
   float4 const r = func(tint_module_vars.S);
 }
diff --git a/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_mat2x4.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
index 91233de..542c4a6 100644
--- a/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
@@ -8,6 +8,6 @@
   return (*pointer);
 }
 kernel void tint_symbol(const constant float2x4* S [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.S=S};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.S=S};
   float4 const r = func((&(*tint_module_vars.S)[1]));
 }
diff --git a/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_struct.wgsl.expected.ir.msl
index 62f4c4e..b6b3e0f 100644
--- a/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_struct.wgsl.expected.ir.msl
@@ -11,6 +11,6 @@
   return (*pointer);
 }
 kernel void tint_symbol(const constant str* S [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.S=S};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.S=S};
   float4 const r = func((&(*tint_module_vars.S).i));
 }
diff --git a/test/tint/ptr_ref/store/global/i32.spvasm.expected.ir.msl b/test/tint/ptr_ref/store/global/i32.spvasm.expected.ir.msl
index add96d4..c36daad 100644
--- a/test/tint/ptr_ref/store/global/i32.spvasm.expected.ir.msl
+++ b/test/tint/ptr_ref/store/global/i32.spvasm.expected.ir.msl
@@ -10,6 +10,6 @@
 }
 kernel void tint_symbol() {
   thread int I = 0;
-  tint_module_vars_struct const tint_module_vars = {.I=(&I)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.I=(&I)};
   main_1(tint_module_vars);
 }
diff --git a/test/tint/ptr_ref/store/global/i32.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/global/i32.wgsl.expected.ir.msl
index b1b1710..dd7cc0f 100644
--- a/test/tint/ptr_ref/store/global/i32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/global/i32.wgsl.expected.ir.msl
@@ -6,7 +6,7 @@
 
 kernel void tint_symbol() {
   thread int I = 0;
-  tint_module_vars_struct const tint_module_vars = {.I=(&I)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.I=(&I)};
   (*tint_module_vars.I) = 123;
   (*tint_module_vars.I) = 123;
 }
diff --git a/test/tint/ptr_ref/store/global/struct_field.spvasm.expected.ir.msl b/test/tint/ptr_ref/store/global/struct_field.spvasm.expected.ir.msl
index cff29e8..694e0ad 100644
--- a/test/tint/ptr_ref/store/global/struct_field.spvasm.expected.ir.msl
+++ b/test/tint/ptr_ref/store/global/struct_field.spvasm.expected.ir.msl
@@ -12,6 +12,6 @@
 }
 kernel void tint_symbol() {
   thread S V = {};
-  tint_module_vars_struct const tint_module_vars = {.V=(&V)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.V=(&V)};
   main_1(tint_module_vars);
 }
diff --git a/test/tint/ptr_ref/store/param/private/array_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/private/array_in_struct.wgsl.expected.ir.msl
index 9e8c420..9550573 100644
--- a/test/tint/ptr_ref/store/param/private/array_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/private/array_in_struct.wgsl.expected.ir.msl
@@ -24,6 +24,6 @@
 }
 kernel void tint_symbol() {
   thread str P = {};
-  tint_module_vars_struct const tint_module_vars = {.P=(&P)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.P=(&P)};
   func((&(*tint_module_vars.P).arr));
 }
diff --git a/test/tint/ptr_ref/store/param/private/i32.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/private/i32.wgsl.expected.ir.msl
index ec44ab2..5c890a8 100644
--- a/test/tint/ptr_ref/store/param/private/i32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/private/i32.wgsl.expected.ir.msl
@@ -9,6 +9,6 @@
 }
 kernel void tint_symbol() {
   thread int P = 0;
-  tint_module_vars_struct const tint_module_vars = {.P=(&P)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.P=(&P)};
   func(tint_module_vars.P);
 }
diff --git a/test/tint/ptr_ref/store/param/private/i32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/private/i32_in_struct.wgsl.expected.ir.msl
index a1df1d8..75bd9cd 100644
--- a/test/tint/ptr_ref/store/param/private/i32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/private/i32_in_struct.wgsl.expected.ir.msl
@@ -12,6 +12,6 @@
 }
 kernel void tint_symbol() {
   thread str P = {};
-  tint_module_vars_struct const tint_module_vars = {.P=(&P)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.P=(&P)};
   func((&(*tint_module_vars.P).i));
 }
diff --git a/test/tint/ptr_ref/store/param/private/struct_in_array.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/private/struct_in_array.wgsl.expected.ir.msl
index 3472ccb..84c3697 100644
--- a/test/tint/ptr_ref/store/param/private/struct_in_array.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/private/struct_in_array.wgsl.expected.ir.msl
@@ -24,6 +24,6 @@
 }
 kernel void tint_symbol() {
   thread tint_array<str, 4> P = {};
-  tint_module_vars_struct const tint_module_vars = {.P=(&P)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.P=(&P)};
   func((&(*tint_module_vars.P)[2]));
 }
diff --git a/test/tint/ptr_ref/store/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
index eebd3ba..bce7d83 100644
--- a/test/tint/ptr_ref/store/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
@@ -9,6 +9,6 @@
 }
 kernel void tint_symbol() {
   thread float2x2 P = float2x2(0.0f);
-  tint_module_vars_struct const tint_module_vars = {.P=(&P)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.P=(&P)};
   func((&(*tint_module_vars.P)[1]));
 }
diff --git a/test/tint/ptr_ref/store/param/private/vec4_f32.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/private/vec4_f32.wgsl.expected.ir.msl
index 2c270c6..e407ad6 100644
--- a/test/tint/ptr_ref/store/param/private/vec4_f32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/private/vec4_f32.wgsl.expected.ir.msl
@@ -9,6 +9,6 @@
 }
 kernel void tint_symbol() {
   thread float4 P = 0.0f;
-  tint_module_vars_struct const tint_module_vars = {.P=(&P)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.P=(&P)};
   func(tint_module_vars.P);
 }
diff --git a/test/tint/ptr_ref/store/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
index e9223b4..00aeeeb 100644
--- a/test/tint/ptr_ref/store/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
@@ -9,6 +9,6 @@
 }
 kernel void tint_symbol() {
   thread float2x4 P = float2x4(0.0f);
-  tint_module_vars_struct const tint_module_vars = {.P=(&P)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.P=(&P)};
   func((&(*tint_module_vars.P)[1]));
 }
diff --git a/test/tint/ptr_ref/store/param/private/vec4_f32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/private/vec4_f32_in_struct.wgsl.expected.ir.msl
index 3428f6d..e79258b 100644
--- a/test/tint/ptr_ref/store/param/private/vec4_f32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/private/vec4_f32_in_struct.wgsl.expected.ir.msl
@@ -12,6 +12,6 @@
 }
 kernel void tint_symbol() {
   thread str P = {};
-  tint_module_vars_struct const tint_module_vars = {.P=(&P)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.P=(&P)};
   func((&(*tint_module_vars.P).i));
 }
diff --git a/test/tint/ptr_ref/store/param/storage/array_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/storage/array_in_struct.wgsl.expected.ir.msl
index 910c21d..fc20572 100644
--- a/test/tint/ptr_ref/store/param/storage/array_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/storage/array_in_struct.wgsl.expected.ir.msl
@@ -23,6 +23,6 @@
   (*pointer) = tint_array<int, 4>{};
 }
 kernel void tint_symbol(device str* S [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.S=S};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.S=S};
   func((&(*tint_module_vars.S).arr));
 }
diff --git a/test/tint/ptr_ref/store/param/storage/i32.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/storage/i32.wgsl.expected.ir.msl
index 7dde63a..faa836a 100644
--- a/test/tint/ptr_ref/store/param/storage/i32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/storage/i32.wgsl.expected.ir.msl
@@ -8,6 +8,6 @@
   (*pointer) = 42;
 }
 kernel void tint_symbol(device int* S [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.S=S};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.S=S};
   func(tint_module_vars.S);
 }
diff --git a/test/tint/ptr_ref/store/param/storage/i32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/storage/i32_in_struct.wgsl.expected.ir.msl
index 2de93aa..b19fb13 100644
--- a/test/tint/ptr_ref/store/param/storage/i32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/storage/i32_in_struct.wgsl.expected.ir.msl
@@ -11,6 +11,6 @@
   (*pointer) = 42;
 }
 kernel void tint_symbol(device str* S [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.S=S};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.S=S};
   func((&(*tint_module_vars.S).i));
 }
diff --git a/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.msl
index 752fa8b..854b66b 100644
--- a/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.msl
@@ -23,6 +23,6 @@
   (*pointer) = str{};
 }
 kernel void tint_symbol(device tint_array<str, 4>* S [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.S=S};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.S=S};
   func((&(*tint_module_vars.S)[2]));
 }
diff --git a/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
index 53d54f1..e626388 100644
--- a/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
@@ -8,6 +8,6 @@
   (*pointer) = float2(0.0f);
 }
 kernel void tint_symbol(device float2x2* S [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.S=S};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.S=S};
   func((&(*tint_module_vars.S)[1]));
 }
diff --git a/test/tint/ptr_ref/store/param/storage/vec4_f32.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/storage/vec4_f32.wgsl.expected.ir.msl
index a0155aa..41bd9ce 100644
--- a/test/tint/ptr_ref/store/param/storage/vec4_f32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/storage/vec4_f32.wgsl.expected.ir.msl
@@ -8,6 +8,6 @@
   (*pointer) = float4(0.0f);
 }
 kernel void tint_symbol(device float4* S [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.S=S};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.S=S};
   func(tint_module_vars.S);
 }
diff --git a/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
index b5e1c91..e0c9b7e 100644
--- a/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
@@ -8,6 +8,6 @@
   (*pointer) = float4(0.0f);
 }
 kernel void tint_symbol(device float2x4* S [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.S=S};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.S=S};
   func((&(*tint_module_vars.S)[1]));
 }
diff --git a/test/tint/ptr_ref/store/param/storage/vec4_f32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/storage/vec4_f32_in_struct.wgsl.expected.ir.msl
index bb3ec34..5e0a114 100644
--- a/test/tint/ptr_ref/store/param/storage/vec4_f32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/storage/vec4_f32_in_struct.wgsl.expected.ir.msl
@@ -11,6 +11,6 @@
   (*pointer) = float4(0.0f);
 }
 kernel void tint_symbol(device str* S [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.S=S};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.S=S};
   func((&(*tint_module_vars.S).i));
 }
diff --git a/test/tint/samples/simple_vertex.spvasm.expected.ir.msl b/test/tint/samples/simple_vertex.spvasm.expected.ir.msl
index 65eb95d..0e97294 100644
--- a/test/tint/samples/simple_vertex.spvasm.expected.ir.msl
+++ b/test/tint/samples/simple_vertex.spvasm.expected.ir.msl
@@ -12,7 +12,7 @@
 }
 vertex main_out tint_symbol() {
   thread float4 gl_Position = 0.0f;
-  tint_module_vars_struct const tint_module_vars = {.gl_Position=(&gl_Position)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.gl_Position=(&gl_Position)};
   main_1(tint_module_vars);
-  return {.gl_Position=(*tint_module_vars.gl_Position)};
+  return main_out{.gl_Position=(*tint_module_vars.gl_Position)};
 }
diff --git a/test/tint/statements/assign/phony/addr_of_runtime_array.wgsl.expected.ir.msl b/test/tint/statements/assign/phony/addr_of_runtime_array.wgsl.expected.ir.msl
index ff2a143..fed0746 100644
--- a/test/tint/statements/assign/phony/addr_of_runtime_array.wgsl.expected.ir.msl
+++ b/test/tint/statements/assign/phony/addr_of_runtime_array.wgsl.expected.ir.msl
@@ -20,5 +20,5 @@
 };
 
 kernel void tint_symbol(device S* s [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s};
 }
diff --git a/test/tint/statements/assign/phony/storage_buffer.wgsl.expected.ir.msl b/test/tint/statements/assign/phony/storage_buffer.wgsl.expected.ir.msl
index 5800906..3ecc8ed 100644
--- a/test/tint/statements/assign/phony/storage_buffer.wgsl.expected.ir.msl
+++ b/test/tint/statements/assign/phony/storage_buffer.wgsl.expected.ir.msl
@@ -8,5 +8,5 @@
 };
 
 kernel void tint_symbol(device S* s [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.s=s};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.s=s};
 }
diff --git a/test/tint/statements/assign/phony/uniform_buffer.wgsl.expected.ir.msl b/test/tint/statements/assign/phony/uniform_buffer.wgsl.expected.ir.msl
index fbb60dd..5b84f15 100644
--- a/test/tint/statements/assign/phony/uniform_buffer.wgsl.expected.ir.msl
+++ b/test/tint/statements/assign/phony/uniform_buffer.wgsl.expected.ir.msl
@@ -8,5 +8,5 @@
 };
 
 kernel void tint_symbol(const constant S* u [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.u=u};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u};
 }
diff --git a/test/tint/statements/discard/helper_functions.wgsl.expected.ir.msl b/test/tint/statements/discard/helper_functions.wgsl.expected.ir.msl
index 80d7ee1..cc3b5c2 100644
--- a/test/tint/statements/discard/helper_functions.wgsl.expected.ir.msl
+++ b/test/tint/statements/discard/helper_functions.wgsl.expected.ir.msl
@@ -19,7 +19,7 @@
 }
 fragment void tint_symbol(device int* non_uniform_global [[buffer(0)]], device float* output [[buffer(1)]]) {
   thread bool continue_execution = true;
-  tint_module_vars_struct const tint_module_vars = {.non_uniform_global=non_uniform_global, .output=output, .continue_execution=(&continue_execution)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.non_uniform_global=non_uniform_global, .output=output, .continue_execution=(&continue_execution)};
   foo(tint_module_vars);
   bar(tint_module_vars);
   if (!((*tint_module_vars.continue_execution))) {
diff --git a/test/tint/statements/discard/multiple_returns.wgsl.expected.ir.msl b/test/tint/statements/discard/multiple_returns.wgsl.expected.ir.msl
index 30ff5e9..22fc778 100644
--- a/test/tint/statements/discard/multiple_returns.wgsl.expected.ir.msl
+++ b/test/tint/statements/discard/multiple_returns.wgsl.expected.ir.msl
@@ -8,7 +8,7 @@
 
 fragment void tint_symbol(device int* non_uniform_global [[buffer(0)]], device float* output [[buffer(1)]]) {
   thread bool continue_execution = true;
-  tint_module_vars_struct const tint_module_vars = {.non_uniform_global=non_uniform_global, .output=output, .continue_execution=(&continue_execution)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.non_uniform_global=non_uniform_global, .output=output, .continue_execution=(&continue_execution)};
   if (((*tint_module_vars.non_uniform_global) < 0)) {
     (*tint_module_vars.continue_execution) = false;
   }
diff --git a/test/tint/statements/discard/nested_return.wgsl.expected.ir.msl b/test/tint/statements/discard/nested_return.wgsl.expected.ir.msl
index 6659eeb..f82b619 100644
--- a/test/tint/statements/discard/nested_return.wgsl.expected.ir.msl
+++ b/test/tint/statements/discard/nested_return.wgsl.expected.ir.msl
@@ -7,7 +7,7 @@
 
 fragment void tint_symbol(device int* non_uniform_global [[buffer(0)]]) {
   thread bool continue_execution = true;
-  tint_module_vars_struct const tint_module_vars = {.non_uniform_global=non_uniform_global, .continue_execution=(&continue_execution)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.non_uniform_global=non_uniform_global, .continue_execution=(&continue_execution)};
   if (((*tint_module_vars.non_uniform_global) < 0)) {
     (*tint_module_vars.continue_execution) = false;
   }
diff --git a/test/tint/statements/discard/non_uniform.wgsl.expected.ir.msl b/test/tint/statements/discard/non_uniform.wgsl.expected.ir.msl
index 4437f6f..7496b76 100644
--- a/test/tint/statements/discard/non_uniform.wgsl.expected.ir.msl
+++ b/test/tint/statements/discard/non_uniform.wgsl.expected.ir.msl
@@ -8,7 +8,7 @@
 
 fragment void tint_symbol(device int* non_uniform_global [[buffer(0)]], device float* output [[buffer(1)]]) {
   thread bool continue_execution = true;
-  tint_module_vars_struct const tint_module_vars = {.non_uniform_global=non_uniform_global, .output=output, .continue_execution=(&continue_execution)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.non_uniform_global=non_uniform_global, .output=output, .continue_execution=(&continue_execution)};
   if (((*tint_module_vars.non_uniform_global) < 0)) {
     (*tint_module_vars.continue_execution) = false;
   }
diff --git a/test/tint/struct/type_initializer.wgsl.expected.ir.msl b/test/tint/struct/type_initializer.wgsl.expected.ir.msl
index 5ceced0..54471c4 100644
--- a/test/tint/struct/type_initializer.wgsl.expected.ir.msl
+++ b/test/tint/struct/type_initializer.wgsl.expected.ir.msl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 using namespace metal;
 struct S1 {
@@ -37,39 +35,18 @@
   int const x = 42;
   S1 const empty = S1{};
   S1 const nonempty = S1{.a=1, .b=2, .c=3, .d=4};
-  S1 const nonempty_with_expr = {.a=1, .b=x, .c=(x + 1), .d=nonempty.d};
+  S1 const nonempty_with_expr = S1{.a=1, .b=x, .c=(x + 1), .d=nonempty.d};
   S3 const nested_empty = S3{};
   S3 const nested_nonempty = S3{.g=1, .h=S1{.a=2, .b=3, .c=4, .d=5}, .i=S2{.e=6, .f=S1{.a=7, .b=8, .c=9, .d=10}}};
-  S1 const v = {.a=2, .b=x, .c=(x + 1), .d=nested_nonempty.i.f.d};
-  S3 const nested_nonempty_with_expr = {.g=1, .h=v, .i={.e=6, .f=nonempty}};
+  S1 const v = S1{.a=2, .b=x, .c=(x + 1), .d=nested_nonempty.i.f.d};
+  S3 const nested_nonempty_with_expr = S3{.g=1, .h=v, .i=S2{.e=6, .f=nonempty}};
   int const subexpr_empty = 0;
   int const subexpr_nonempty = 2;
-  int const subexpr_nonempty_with_expr = {.a=1, .b=x, .c=(x + 1), .d=nonempty.d}.c;
+  int const subexpr_nonempty_with_expr = S1{.a=1, .b=x, .c=(x + 1), .d=nonempty.d}.c;
   S1 const subexpr_nested_empty = S1{};
   S1 const subexpr_nested_nonempty = S1{.a=2, .b=3, .c=4, .d=5};
-  S1 const subexpr_nested_nonempty_with_expr = {.e=1, .f={.a=2, .b=x, .c=(x + 1), .d=nested_nonempty.i.f.d}}.f;
+  S1 const subexpr_nested_nonempty_with_expr = S2{.e=1, .f=S1{.a=2, .b=x, .c=(x + 1), .d=nested_nonempty.i.f.d}}.f;
   tint_array<T, 2> const aosoa_empty = tint_array<T, 2>{};
   tint_array<T, 2> const aosoa_nonempty = tint_array<T, 2>{T{.a=tint_array<int, 2>{1, 2}}, T{.a=tint_array<int, 2>{3, 4}}};
-  tint_array<T, 2> const aosoa_nonempty_with_expr = tint_array<T, 2>{{.a=tint_array<int, 2>{1, (aosoa_nonempty[0].a[0] + 1)}}, aosoa_nonempty[1]};
+  tint_array<T, 2> const aosoa_nonempty_with_expr = tint_array<T, 2>{T{.a=tint_array<int, 2>{1, (aosoa_nonempty[0].a[0] + 1)}}, aosoa_nonempty[1]};
 }
-program_source:45:13: error: excess elements in scalar initializer
-  int const subexpr_nonempty_with_expr = {.a=1, .b=x, .c=(x + 1), .d=nonempty.d}.c;
-            ^                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-program_source:45:81: error: expected ';' at end of declaration
-  int const subexpr_nonempty_with_expr = {.a=1, .b=x, .c=(x + 1), .d=nonempty.d}.c;
-                                                                                ^
-                                                                                ;
-program_source:48:50: error: field designator 'e' does not refer to any field in type 'const S1'
-  S1 const subexpr_nested_nonempty_with_expr = {.e=1, .f={.a=2, .b=x, .c=(x + 1), .d=nested_nonempty.i.f.d}}.f;
-                                                 ^
-program_source:48:56: error: field designator 'f' does not refer to any field in type 'const S1'
-  S1 const subexpr_nested_nonempty_with_expr = {.e=1, .f={.a=2, .b=x, .c=(x + 1), .d=nested_nonempty.i.f.d}}.f;
-                                                       ^
-program_source:48:109: error: expected ';' at end of declaration
-  S1 const subexpr_nested_nonempty_with_expr = {.e=1, .f={.a=2, .b=x, .c=(x + 1), .d=nested_nonempty.i.f.d}}.f;
-                                                                                                            ^
-                                                                                                            ;
-program_source:51:71: error: field designator cannot initialize a non-class type 'T[2]'
-  tint_array<T, 2> const aosoa_nonempty_with_expr = tint_array<T, 2>{{.a=tint_array<int, 2>{1, (aosoa_nonempty[0].a[0] + 1)}}, aosoa_nonempty[1]};
-                                                                      ^
-
diff --git a/test/tint/types/buffers/storage.wgsl.expected.ir.msl b/test/tint/types/buffers/storage.wgsl.expected.ir.msl
index 961dc23..a6cd1f5 100644
--- a/test/tint/types/buffers/storage.wgsl.expected.ir.msl
+++ b/test/tint/types/buffers/storage.wgsl.expected.ir.msl
@@ -17,6 +17,6 @@
 };
 
 fragment void tint_symbol(const device tint_array<float, 1>* weights [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.weights=weights};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.weights=weights};
   float a = (*tint_module_vars.weights)[0];
 }
diff --git a/test/tint/types/buffers/uniform.wgsl.expected.ir.msl b/test/tint/types/buffers/uniform.wgsl.expected.ir.msl
index 8587b5a..0728c96 100644
--- a/test/tint/types/buffers/uniform.wgsl.expected.ir.msl
+++ b/test/tint/types/buffers/uniform.wgsl.expected.ir.msl
@@ -5,6 +5,6 @@
 };
 
 fragment void tint_symbol(const constant float2* weights [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.weights=weights};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.weights=weights};
   float a = (*tint_module_vars.weights)[0];
 }
diff --git a/test/tint/types/module_scope_private_initializers.wgsl.expected.ir.msl b/test/tint/types/module_scope_private_initializers.wgsl.expected.ir.msl
index 127fbd6..d7c0ccf 100644
--- a/test/tint/types/module_scope_private_initializers.wgsl.expected.ir.msl
+++ b/test/tint/types/module_scope_private_initializers.wgsl.expected.ir.msl
@@ -8,6 +8,6 @@
 kernel void tint_symbol() {
   thread float a = 1.0f;
   thread float b = 0.0f;
-  tint_module_vars_struct const tint_module_vars = {.a=(&a), .b=(&b)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.a=(&a), .b=(&b)};
   float const x = ((*tint_module_vars.a) + (*tint_module_vars.b));
 }
diff --git a/test/tint/types/module_scope_var_conversions.wgsl.expected.ir.msl b/test/tint/types/module_scope_var_conversions.wgsl.expected.ir.msl
index 0daa2b2..388d8c4 100644
--- a/test/tint/types/module_scope_var_conversions.wgsl.expected.ir.msl
+++ b/test/tint/types/module_scope_var_conversions.wgsl.expected.ir.msl
@@ -44,7 +44,7 @@
   thread uint3 v3u32_var3 = uint3(1u);
   thread bool3 v3bool_var4 = bool3(true);
   thread bool4 v4bool_var5 = bool4(true, false, true, false);
-  tint_module_vars_struct const tint_module_vars = {.bool_var1=(&bool_var1), .bool_var2=(&bool_var2), .bool_var3=(&bool_var3), .i32_var1=(&i32_var1), .i32_var2=(&i32_var2), .i32_var3=(&i32_var3), .u32_var1=(&u32_var1), .u32_var2=(&u32_var2), .u32_var3=(&u32_var3), .v3bool_var1=(&v3bool_var1), .v3bool_var2=(&v3bool_var2), .v3bool_var3=(&v3bool_var3), .v3i32_var1=(&v3i32_var1), .v3i32_var2=(&v3i32_var2), .v3i32_var3=(&v3i32_var3), .v3u32_var1=(&v3u32_var1), .v3u32_var2=(&v3u32_var2), .v3u32_var3=(&v3u32_var3), .v3bool_var4=(&v3bool_var4), .v4bool_var5=(&v4bool_var5)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.bool_var1=(&bool_var1), .bool_var2=(&bool_var2), .bool_var3=(&bool_var3), .i32_var1=(&i32_var1), .i32_var2=(&i32_var2), .i32_var3=(&i32_var3), .u32_var1=(&u32_var1), .u32_var2=(&u32_var2), .u32_var3=(&u32_var3), .v3bool_var1=(&v3bool_var1), .v3bool_var2=(&v3bool_var2), .v3bool_var3=(&v3bool_var3), .v3i32_var1=(&v3i32_var1), .v3i32_var2=(&v3i32_var2), .v3i32_var3=(&v3i32_var3), .v3u32_var1=(&v3u32_var1), .v3u32_var2=(&v3u32_var2), .v3u32_var3=(&v3u32_var3), .v3bool_var4=(&v3bool_var4), .v4bool_var5=(&v4bool_var5)};
   (*tint_module_vars.bool_var1) = false;
   (*tint_module_vars.bool_var2) = false;
   (*tint_module_vars.bool_var3) = false;
diff --git a/test/tint/types/module_scope_var_initializers.wgsl.expected.ir.msl b/test/tint/types/module_scope_var_initializers.wgsl.expected.ir.msl
index e6954bb..51b54a4 100644
--- a/test/tint/types/module_scope_var_initializers.wgsl.expected.ir.msl
+++ b/test/tint/types/module_scope_var_initializers.wgsl.expected.ir.msl
@@ -39,7 +39,7 @@
   thread float2x3 m2x3_var = float2x3(float3(0.0f), float3(0.0f));
   thread tint_array<float, 4> arr_var = tint_array<float, 4>{};
   thread S struct_var = S{};
-  tint_module_vars_struct const tint_module_vars = {.bool_var=(&bool_var), .i32_var=(&i32_var), .u32_var=(&u32_var), .f32_var=(&f32_var), .v2i32_var=(&v2i32_var), .v3u32_var=(&v3u32_var), .v4f32_var=(&v4f32_var), .m2x3_var=(&m2x3_var), .arr_var=(&arr_var), .struct_var=(&struct_var)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.bool_var=(&bool_var), .i32_var=(&i32_var), .u32_var=(&u32_var), .f32_var=(&f32_var), .v2i32_var=(&v2i32_var), .v3u32_var=(&v3u32_var), .v4f32_var=(&v4f32_var), .m2x3_var=(&m2x3_var), .arr_var=(&arr_var), .struct_var=(&struct_var)};
   (*tint_module_vars.bool_var) = false;
   (*tint_module_vars.i32_var) = 0;
   (*tint_module_vars.u32_var) = 0u;
diff --git a/test/tint/var/inferred/global.wgsl.expected.ir.msl b/test/tint/var/inferred/global.wgsl.expected.ir.msl
index 95b79fc..c18730f 100644
--- a/test/tint/var/inferred/global.wgsl.expected.ir.msl
+++ b/test/tint/var/inferred/global.wgsl.expected.ir.msl
@@ -51,7 +51,7 @@
   thread tint_array<float, 10> v14 = tint_array<float, 10>{};
   thread int3 v15 = int3(1, 2, 3);
   thread float3 v16 = float3(1.0f, 2.0f, 3.0f);
-  tint_module_vars_struct const tint_module_vars = {.v1=(&v1), .v2=(&v2), .v3=(&v3), .v4=(&v4), .v5=(&v5), .v6=(&v6), .v7=(&v7), .v8=(&v8), .v9=(&v9), .v10=(&v10), .v11=(&v11), .v12=(&v12), .v13=(&v13), .v14=(&v14), .v15=(&v15), .v16=(&v16)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.v1=(&v1), .v2=(&v2), .v3=(&v3), .v4=(&v4), .v5=(&v5), .v6=(&v6), .v7=(&v7), .v8=(&v8), .v9=(&v9), .v10=(&v10), .v11=(&v11), .v12=(&v12), .v13=(&v13), .v14=(&v14), .v15=(&v15), .v16=(&v16)};
   int const l1 = (*tint_module_vars.v1);
   uint const l2 = (*tint_module_vars.v2);
   float const l3 = (*tint_module_vars.v3);
diff --git a/test/tint/var/initialization/function/nested_structs.wgsl.expected.ir.msl b/test/tint/var/initialization/function/nested_structs.wgsl.expected.ir.msl
index 4c4cde8..df7301d 100644
--- a/test/tint/var/initialization/function/nested_structs.wgsl.expected.ir.msl
+++ b/test/tint/var/initialization/function/nested_structs.wgsl.expected.ir.msl
@@ -17,6 +17,6 @@
   return s3.s2.s1.i;
 }
 kernel void tint_symbol(device int* out [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = {.out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
   (*tint_module_vars.out) = f(S3{.s2=S2{.s1=S1{.i=42}}});
 }
diff --git a/test/tint/var/initialization/private/array/array_i32.wgsl.expected.ir.msl b/test/tint/var/initialization/private/array/array_i32.wgsl.expected.ir.msl
index 54ddf72..f402b99 100644
--- a/test/tint/var/initialization/private/array/array_i32.wgsl.expected.ir.msl
+++ b/test/tint/var/initialization/private/array/array_i32.wgsl.expected.ir.msl
@@ -20,7 +20,7 @@
 kernel void tint_symbol() {
   thread tint_array<tint_array<int, 3>, 2> zero = {};
   thread tint_array<tint_array<int, 3>, 2> init = tint_array<tint_array<int, 3>, 2>{tint_array<int, 3>{1, 2, 3}, tint_array<int, 3>{4, 5, 6}};
-  tint_module_vars_struct const tint_module_vars = {.zero=(&zero), .init=(&init)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.zero=(&zero), .init=(&init)};
   tint_array<tint_array<int, 3>, 2> v0 = (*tint_module_vars.zero);
   tint_array<tint_array<int, 3>, 2> v1 = (*tint_module_vars.init);
 }
diff --git a/test/tint/var/initialization/private/array/i32.wgsl.expected.ir.msl b/test/tint/var/initialization/private/array/i32.wgsl.expected.ir.msl
index 0d212a7..0a1e301 100644
--- a/test/tint/var/initialization/private/array/i32.wgsl.expected.ir.msl
+++ b/test/tint/var/initialization/private/array/i32.wgsl.expected.ir.msl
@@ -20,7 +20,7 @@
 kernel void tint_symbol() {
   thread tint_array<int, 3> zero = {};
   thread tint_array<int, 3> init = tint_array<int, 3>{1, 2, 3};
-  tint_module_vars_struct const tint_module_vars = {.zero=(&zero), .init=(&init)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.zero=(&zero), .init=(&init)};
   tint_array<int, 3> v0 = (*tint_module_vars.zero);
   tint_array<int, 3> v1 = (*tint_module_vars.init);
 }
diff --git a/test/tint/var/initialization/private/matrix.wgsl.expected.ir.msl b/test/tint/var/initialization/private/matrix.wgsl.expected.ir.msl
index bd69c3c..2bc17f2 100644
--- a/test/tint/var/initialization/private/matrix.wgsl.expected.ir.msl
+++ b/test/tint/var/initialization/private/matrix.wgsl.expected.ir.msl
@@ -6,5 +6,5 @@
 
 kernel void tint_symbol() {
   thread float2x3 v = float2x3(0.0f);
-  tint_module_vars_struct const tint_module_vars = {.v=(&v)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.v=(&v)};
 }
diff --git a/test/tint/var/initialization/private/nested_structs.wgsl.expected.ir.msl b/test/tint/var/initialization/private/nested_structs.wgsl.expected.ir.msl
index 7e74110..f8ac05b 100644
--- a/test/tint/var/initialization/private/nested_structs.wgsl.expected.ir.msl
+++ b/test/tint/var/initialization/private/nested_structs.wgsl.expected.ir.msl
@@ -16,6 +16,6 @@
 
 kernel void tint_symbol(device int* out [[buffer(0)]]) {
   thread S3 P = S3{.s2=S2{.s1=S1{.i=42}}};
-  tint_module_vars_struct const tint_module_vars = {.P=(&P), .out=out};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.P=(&P), .out=out};
   (*tint_module_vars.out) = (*tint_module_vars.P).s2.s1.i;
 }
diff --git a/test/tint/var/initialization/private/scalar.wgsl.expected.ir.msl b/test/tint/var/initialization/private/scalar.wgsl.expected.ir.msl
index 66e321b..b23b0cf 100644
--- a/test/tint/var/initialization/private/scalar.wgsl.expected.ir.msl
+++ b/test/tint/var/initialization/private/scalar.wgsl.expected.ir.msl
@@ -6,5 +6,5 @@
 
 kernel void tint_symbol() {
   thread int v = 0;
-  tint_module_vars_struct const tint_module_vars = {.v=(&v)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.v=(&v)};
 }
diff --git a/test/tint/var/initialization/private/struct.wgsl.expected.ir.msl b/test/tint/var/initialization/private/struct.wgsl.expected.ir.msl
index 55b3453..436d678 100644
--- a/test/tint/var/initialization/private/struct.wgsl.expected.ir.msl
+++ b/test/tint/var/initialization/private/struct.wgsl.expected.ir.msl
@@ -10,5 +10,5 @@
 
 kernel void tint_symbol() {
   thread S v = {};
-  tint_module_vars_struct const tint_module_vars = {.v=(&v)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.v=(&v)};
 }
diff --git a/test/tint/var/initialization/private/vector.wgsl.expected.ir.msl b/test/tint/var/initialization/private/vector.wgsl.expected.ir.msl
index 31ca65f..fb95607 100644
--- a/test/tint/var/initialization/private/vector.wgsl.expected.ir.msl
+++ b/test/tint/var/initialization/private/vector.wgsl.expected.ir.msl
@@ -6,5 +6,5 @@
 
 kernel void tint_symbol() {
   thread int3 v = 0;
-  tint_module_vars_struct const tint_module_vars = {.v=(&v)};
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.v=(&v)};
 }
