tint/hlsl: workaround DXC bug with const structs/arrays of matrices

This works around a bug in DXC:
https://github.com/microsoft/DirectXShaderCompiler/issues/5883

For the specific case of structs/arrays of matrices, we emit `let`s as
non-const.

Bug: tint:2059
Change-Id: I2e2922f132dbff962cde01e2e6a3a75212ce6c51
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/156900
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Antonio Maiorano <amaiorano@google.com>
diff --git a/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc b/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc
index 51f49b0..d84e98a 100644
--- a/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc
+++ b/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc
@@ -4563,12 +4563,41 @@
     return true;
 }
 
+bool ASTPrinter::IsStructOrArrayOfMatrix(const core::type::Type* ty) {
+    if (!ty->IsAnyOf<core::type::Struct, core::type::Array>()) {
+        return false;
+    }
+    return GetOrCreate(is_struct_or_array_of_matrix_, ty, [&]() {
+        Vector<const core::type::Type*, 4> to_visit({ty});
+        while (!to_visit.IsEmpty()) {
+            auto* curr = to_visit.Pop();
+            if (curr->Is<core::type::Matrix>()) {
+                return true;
+            }
+            auto [child_ty, child_count] = curr->Elements();
+            if (child_ty) {
+                to_visit.Push(child_ty);
+            } else {
+                for (uint32_t i = 0; i < child_count; ++i) {
+                    to_visit.Push(curr->Element(i));
+                }
+            }
+        }
+        return false;
+    });
+}
+
 bool ASTPrinter::EmitLet(const ast::Let* let) {
     auto* sem = builder_.Sem().Get(let);
     auto* type = sem->Type()->UnwrapRef();
 
     auto out = Line();
-    out << "const ";
+
+    // TODO(crbug.com/tint/2059): Workaround DXC bug with const instances of struct/array-of-matrix.
+    if (!IsStructOrArrayOfMatrix(type)) {
+        out << "const ";
+    }
+
     if (!EmitTypeAndName(out, type, core::AddressSpace::kUndefined, core::Access::kUndefined,
                          let->name->symbol.Name())) {
         return false;
diff --git a/src/tint/lang/hlsl/writer/ast_printer/ast_printer.h b/src/tint/lang/hlsl/writer/ast_printer/ast_printer.h
index 2cf5165..0c449b2 100644
--- a/src/tint/lang/hlsl/writer/ast_printer/ast_printer.h
+++ b/src/tint/lang/hlsl/writer/ast_printer/ast_printer.h
@@ -595,6 +595,10 @@
         return builder_.TypeOf(ptr);
     }
 
+    /// @return true if ty is a struct or array with a matrix member (recursively), false otherwise.
+    /// @param ty the type that will be queried.
+    bool IsStructOrArrayOfMatrix(const core::type::Type* ty);
+
     ProgramBuilder builder_;
 
     /// Helper functions emitted at the top of the output
@@ -613,6 +617,7 @@
     std::unordered_map<const core::type::Matrix*, std::string> dynamic_matrix_scalar_write_;
     std::unordered_map<const core::type::Type*, std::string> value_or_one_if_zero_;
     std::unordered_set<const core::type::Struct*> emitted_structs_;
+    std::unordered_map<const core::type::Type*, bool> is_struct_or_array_of_matrix_;
 };
 
 }  // namespace tint::hlsl::writer
diff --git a/src/tint/lang/hlsl/writer/ast_printer/variable_decl_statement_test.cc b/src/tint/lang/hlsl/writer/ast_printer/variable_decl_statement_test.cc
index b64cbbd..8e52ea8 100644
--- a/src/tint/lang/hlsl/writer/ast_printer/variable_decl_statement_test.cc
+++ b/src/tint/lang/hlsl/writer/ast_printer/variable_decl_statement_test.cc
@@ -442,5 +442,148 @@
 )");
 }
 
+TEST_F(HlslASTPrinterTest_VariableDecl, Emit_VariableDeclStatement_Const_Mat) {
+    auto* C = Const("C", Call<mat2x3<f32>>(1_f, 2_f, 3_f, 4_f, 5_f, 6_f));
+
+    Func("f", tint::Empty, ty.void_(),
+         Vector{
+             Decl(C),
+             Decl(Let("l", Expr(C))),
+         });
+
+    ASTPrinter& gen = Build();
+
+    ASSERT_TRUE(gen.Generate()) << gen.Diagnostics();
+
+    EXPECT_EQ(gen.Result(), R"(void f() {
+  const float2x3 l = float2x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f));
+}
+)");
+}
+
+TEST_F(HlslASTPrinterTest_VariableDecl, Emit_VariableDeclStatement_Const_Struct_of_Mat) {
+    Structure("S", Vector{Member("m", ty.mat2x3<f32>())});
+    auto* C = Const("C", Call("S", Call<mat2x3<f32>>(1_f, 2_f, 3_f, 4_f, 5_f, 6_f)));
+
+    Func("f", tint::Empty, ty.void_(),
+         Vector{
+             Decl(C),
+             Decl(Let("l", Expr(C))),
+         });
+
+    ASTPrinter& gen = Build();
+
+    ASSERT_TRUE(gen.Generate()) << gen.Diagnostics();
+
+    EXPECT_EQ(gen.Result(), R"(struct S {
+  float2x3 m;
+};
+
+void f() {
+  S l = {float2x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f))};
+}
+)");
+}
+
+TEST_F(HlslASTPrinterTest_VariableDecl, Emit_VariableDeclStatement_Const_Struct_of_Struct_of_Mat) {
+    Structure("S", Vector{Member("m", ty.mat2x3<f32>())});
+    Structure("S2", Vector{Member("s", ty("S"))});
+    auto* C = Const("C", Call("S2", Call("S", Call<mat2x3<f32>>(1_f, 2_f, 3_f, 4_f, 5_f, 6_f))));
+
+    Func("f", tint::Empty, ty.void_(),
+         Vector{
+             Decl(C),
+             Decl(Let("l", Expr(C))),
+         });
+
+    ASTPrinter& gen = Build();
+
+    ASSERT_TRUE(gen.Generate()) << gen.Diagnostics();
+
+    EXPECT_EQ(gen.Result(), R"(struct S {
+  float2x3 m;
+};
+struct S2 {
+  S s;
+};
+
+void f() {
+  S2 l = {{float2x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f))}};
+}
+)");
+}
+
+TEST_F(HlslASTPrinterTest_VariableDecl, Emit_VariableDeclStatement_Const_Struct_of_Array_of_Mat) {
+    Structure("S", Vector{Member("m", ty.array(ty.mat2x3<f32>(), 1_u))});
+
+    auto* C = Const("C", Call("S", Call(ty.array(ty.mat2x3<f32>(), 1_u),
+                                        Call<mat2x3<f32>>(1_f, 2_f, 3_f, 4_f, 5_f, 6_f))));
+
+    Func("f", tint::Empty, ty.void_(),
+         Vector{
+             Decl(C),
+             Decl(Let("l", Expr(C))),
+         });
+
+    ASTPrinter& gen = Build();
+
+    ASSERT_TRUE(gen.Generate()) << gen.Diagnostics();
+
+    EXPECT_EQ(gen.Result(), R"(struct S {
+  float2x3 m[1];
+};
+
+void f() {
+  S l = {{float2x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f))}};
+}
+)");
+}
+
+TEST_F(HlslASTPrinterTest_VariableDecl, Emit_VariableDeclStatement_Const_Array_of_Mat) {
+    auto* C = Const("C", Call(ty.array(ty.mat2x3<f32>(), 1_u),
+                              Call<mat2x3<f32>>(1_f, 2_f, 3_f, 4_f, 5_f, 6_f)));
+
+    Func("f", tint::Empty, ty.void_(),
+         Vector{
+             Decl(C),
+             Decl(Let("l", Expr(C))),
+         });
+
+    ASTPrinter& gen = Build();
+
+    ASSERT_TRUE(gen.Generate()) << gen.Diagnostics();
+
+    EXPECT_EQ(gen.Result(), R"(void f() {
+  float2x3 l[1] = {float2x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f))};
+}
+)");
+}
+
+TEST_F(HlslASTPrinterTest_VariableDecl, Emit_VariableDeclStatement_Const_Array_of_Struct_of_Mat) {
+    Structure("S", Vector{Member("m", ty.mat2x3<f32>())});
+
+    auto* C = Const("C", Call(ty.array(ty("S"), 1_u),
+                              Call(ty("S"), Call<mat2x3<f32>>(1_f, 2_f, 3_f, 4_f, 5_f, 6_f))));
+
+    Func("f", tint::Empty, ty.void_(),
+         Vector{
+             Decl(C),
+             Decl(Let("l", Expr(C))),
+         });
+
+    ASTPrinter& gen = Build();
+
+    ASSERT_TRUE(gen.Generate()) << gen.Diagnostics();
+
+    EXPECT_EQ(gen.Result(), R"(struct S {
+  float2x3 m;
+};
+
+void f() {
+  S l[1] = {{float2x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f))}};
+}
+)");
+}
+
 }  // namespace
 }  // namespace tint::hlsl::writer
diff --git a/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.dxc.hlsl b/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.dxc.hlsl
index 1344f62..bab24e4 100644
--- a/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.dxc.hlsl
@@ -134,7 +134,7 @@
   const matrix<float16_t, 4, 3> mat4x3_f16 = sb_load_32(((800u * idx) + 664u));
   const matrix<float16_t, 4, 4> mat4x4_f16 = sb_load_33(((800u * idx) + 696u));
   const float3 arr2_vec3_f32[2] = sb_load_34(((800u * idx) + 736u));
-  const matrix<float16_t, 4, 2> arr2_mat4x2_f16[2] = sb_load_35(((800u * idx) + 768u));
+  matrix<float16_t, 4, 2> arr2_mat4x2_f16[2] = sb_load_35(((800u * idx) + 768u));
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.dxc.hlsl b/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.dxc.hlsl
index 8b587ee..5f763f9 100644
--- a/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.dxc.hlsl
@@ -167,7 +167,7 @@
   sb_store_33(((800u * idx) + 696u), matrix<float16_t, 4, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx));
   const float3 tint_symbol_2[2] = (float3[2])0;
   sb_store_34(((800u * idx) + 736u), tint_symbol_2);
-  const matrix<float16_t, 4, 2> tint_symbol_3[2] = (matrix<float16_t, 4, 2>[2])0;
+  matrix<float16_t, 4, 2> tint_symbol_3[2] = (matrix<float16_t, 4, 2>[2])0;
   sb_store_35(((800u * idx) + 768u), tint_symbol_3);
 }
 
diff --git a/test/tint/buffer/storage/static_index/read_f16.wgsl.expected.dxc.hlsl b/test/tint/buffer/storage/static_index/read_f16.wgsl.expected.dxc.hlsl
index 19eb56f..361d496 100644
--- a/test/tint/buffer/storage/static_index/read_f16.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/storage/static_index/read_f16.wgsl.expected.dxc.hlsl
@@ -153,7 +153,7 @@
   const matrix<float16_t, 4, 3> mat4x3_f16 = sb_load_32(664u);
   const matrix<float16_t, 4, 4> mat4x4_f16 = sb_load_33(696u);
   const float3 arr2_vec3_f32[2] = sb_load_34(736u);
-  const matrix<float16_t, 4, 2> arr2_mat4x2_f16[2] = sb_load_35(768u);
+  matrix<float16_t, 4, 2> arr2_mat4x2_f16[2] = sb_load_35(768u);
   const Inner struct_inner = sb_load_36(800u);
   const Inner array_struct_inner[4] = sb_load_37(812u);
   return;
diff --git a/test/tint/buffer/storage/static_index/write_f16.wgsl.expected.dxc.hlsl b/test/tint/buffer/storage/static_index/write_f16.wgsl.expected.dxc.hlsl
index a36bc46..916cbb8 100644
--- a/test/tint/buffer/storage/static_index/write_f16.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/storage/static_index/write_f16.wgsl.expected.dxc.hlsl
@@ -185,7 +185,7 @@
   sb_store_33(696u, matrix<float16_t, 4, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx));
   const float3 tint_symbol[2] = (float3[2])0;
   sb_store_34(736u, tint_symbol);
-  const matrix<float16_t, 4, 2> tint_symbol_1[2] = (matrix<float16_t, 4, 2>[2])0;
+  matrix<float16_t, 4, 2> tint_symbol_1[2] = (matrix<float16_t, 4, 2>[2])0;
   sb_store_35(768u, tint_symbol_1);
   const Inner tint_symbol_2 = (Inner)0;
   sb_store_36(800u, tint_symbol_2);
diff --git a/test/tint/buffer/storage/types/struct_f16.wgsl.expected.dxc.hlsl b/test/tint/buffer/storage/types/struct_f16.wgsl.expected.dxc.hlsl
index 8af93b3..7a2b278 100644
--- a/test/tint/buffer/storage/types/struct_f16.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/storage/types/struct_f16.wgsl.expected.dxc.hlsl
@@ -15,12 +15,12 @@
 }
 
 Inner tint_symbol_load_1(uint offset) {
-  const Inner tint_symbol_2 = {tint_symbol.Load<float16_t>((offset + 0u)), tint_symbol.Load<vector<float16_t, 3> >((offset + 8u)), tint_symbol_load_4((offset + 16u))};
+  Inner tint_symbol_2 = {tint_symbol.Load<float16_t>((offset + 0u)), tint_symbol.Load<vector<float16_t, 3> >((offset + 8u)), tint_symbol_load_4((offset + 16u))};
   return tint_symbol_2;
 }
 
 S tint_symbol_load(uint offset) {
-  const S tint_symbol_3 = {tint_symbol_load_1((offset + 0u))};
+  S tint_symbol_3 = {tint_symbol_load_1((offset + 0u))};
   return tint_symbol_3;
 }
 
@@ -41,7 +41,7 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  const S t = tint_symbol_load(0u);
+  S t = tint_symbol_load(0u);
   tint_symbol_1_store(0u, t);
   return;
 }
diff --git a/test/tint/buffer/storage/types/struct_f32.wgsl.expected.dxc.hlsl b/test/tint/buffer/storage/types/struct_f32.wgsl.expected.dxc.hlsl
index 4265ca6..c3d59b2 100644
--- a/test/tint/buffer/storage/types/struct_f32.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/storage/types/struct_f32.wgsl.expected.dxc.hlsl
@@ -15,12 +15,12 @@
 }
 
 Inner tint_symbol_load_1(uint offset) {
-  const Inner tint_symbol_2 = {asfloat(tint_symbol.Load((offset + 0u))), asfloat(tint_symbol.Load3((offset + 16u))), tint_symbol_load_4((offset + 32u))};
+  Inner tint_symbol_2 = {asfloat(tint_symbol.Load((offset + 0u))), asfloat(tint_symbol.Load3((offset + 16u))), tint_symbol_load_4((offset + 32u))};
   return tint_symbol_2;
 }
 
 S tint_symbol_load(uint offset) {
-  const S tint_symbol_3 = {tint_symbol_load_1((offset + 0u))};
+  S tint_symbol_3 = {tint_symbol_load_1((offset + 0u))};
   return tint_symbol_3;
 }
 
@@ -41,7 +41,7 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  const S t = tint_symbol_load(0u);
+  S t = tint_symbol_load(0u);
   tint_symbol_1_store(0u, t);
   return;
 }
diff --git a/test/tint/buffer/storage/types/struct_f32.wgsl.expected.fxc.hlsl b/test/tint/buffer/storage/types/struct_f32.wgsl.expected.fxc.hlsl
index 4265ca6..c3d59b2 100644
--- a/test/tint/buffer/storage/types/struct_f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/storage/types/struct_f32.wgsl.expected.fxc.hlsl
@@ -15,12 +15,12 @@
 }
 
 Inner tint_symbol_load_1(uint offset) {
-  const Inner tint_symbol_2 = {asfloat(tint_symbol.Load((offset + 0u))), asfloat(tint_symbol.Load3((offset + 16u))), tint_symbol_load_4((offset + 32u))};
+  Inner tint_symbol_2 = {asfloat(tint_symbol.Load((offset + 0u))), asfloat(tint_symbol.Load3((offset + 16u))), tint_symbol_load_4((offset + 32u))};
   return tint_symbol_2;
 }
 
 S tint_symbol_load(uint offset) {
-  const S tint_symbol_3 = {tint_symbol_load_1((offset + 0u))};
+  S tint_symbol_3 = {tint_symbol_load_1((offset + 0u))};
   return tint_symbol_3;
 }
 
@@ -41,7 +41,7 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  const S t = tint_symbol_load(0u);
+  S t = tint_symbol_load(0u);
   tint_symbol_1_store(0u, t);
   return;
 }
diff --git a/test/tint/buffer/uniform/dynamic_index/read_f16.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/dynamic_index/read_f16.wgsl.expected.dxc.hlsl
index 2f61269..f0591cc 100644
--- a/test/tint/buffer/uniform/dynamic_index/read_f16.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/dynamic_index/read_f16.wgsl.expected.dxc.hlsl
@@ -310,7 +310,7 @@
   const matrix<float16_t, 4, 3> mat4x3_f16 = ub_load_32(((800u * idx) + 664u));
   const matrix<float16_t, 4, 4> mat4x4_f16 = ub_load_33(((800u * idx) + 696u));
   const float3 arr2_vec3_f32[2] = ub_load_34(((800u * idx) + 736u));
-  const matrix<float16_t, 4, 2> arr2_mat4x2_f16[2] = ub_load_35(((800u * idx) + 768u));
+  matrix<float16_t, 4, 2> arr2_mat4x2_f16[2] = ub_load_35(((800u * idx) + 768u));
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/buffer/uniform/static_index/read_f16.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/static_index/read_f16.wgsl.expected.dxc.hlsl
index 91197a7..d127a37 100644
--- a/test/tint/buffer/uniform/static_index/read_f16.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/static_index/read_f16.wgsl.expected.dxc.hlsl
@@ -311,7 +311,7 @@
   const matrix<float16_t, 4, 3> mat4x3_f16 = ub_load_32(664u);
   const matrix<float16_t, 4, 4> mat4x4_f16 = ub_load_33(696u);
   const float3 arr2_vec3_f32[2] = ub_load_34(736u);
-  const matrix<float16_t, 4, 2> arr2_mat4x2_f16[2] = ub_load_35(768u);
+  matrix<float16_t, 4, 2> arr2_mat4x2_f16[2] = ub_load_35(768u);
   const Inner struct_inner = ub_load_36(800u);
   const Inner array_struct_inner[4] = ub_load_37(816u);
   return;
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index 9366d6f..c5a70eb 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -31,7 +31,7 @@
 void f() {
   const int p_a_i_save = i();
   const int p_a_i_i_save = i();
-  const float2x2 l_a[4] = a_load(0u);
+  float2x2 l_a[4] = a_load(0u);
   const float2x2 l_a_i = a_load_1((16u * uint(p_a_i_save)));
   const uint scalar_offset_2 = (((16u * uint(p_a_i_save)) + (8u * uint(p_a_i_i_save)))) / 4;
   uint4 ubo_load_2 = a[scalar_offset_2 / 4];
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index 9366d6f..c5a70eb 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -31,7 +31,7 @@
 void f() {
   const int p_a_i_save = i();
   const int p_a_i_i_save = i();
-  const float2x2 l_a[4] = a_load(0u);
+  float2x2 l_a[4] = a_load(0u);
   const float2x2 l_a_i = a_load_1((16u * uint(p_a_i_save)));
   const uint scalar_offset_2 = (((16u * uint(p_a_i_save)) + (8u * uint(p_a_i_i_save)))) / 4;
   uint4 ubo_load_2 = a[scalar_offset_2 / 4];
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
index 303f3ca..e25c520 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -23,7 +23,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const float2x2 l_a[4] = a_load(0u);
+  float2x2 l_a[4] = a_load(0u);
   const float2x2 l_a_i = a_load_1(32u);
   const float2 l_a_i_i = asfloat(a[2].zw);
   return;
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
index 303f3ca..e25c520 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -23,7 +23,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const float2x2 l_a[4] = a_load(0u);
+  float2x2 l_a[4] = a_load(0u);
   const float2x2 l_a_i = a_load_1(32u);
   const float2 l_a_i_i = asfloat(a[2].zw);
   return;
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index 37a433f..f1d4112 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -37,7 +37,7 @@
 void f() {
   const int p_a_i_save = i();
   const int p_a_i_i_save = i();
-  const matrix<float16_t, 2, 3> l_a[4] = a_load(0u);
+  matrix<float16_t, 2, 3> l_a[4] = a_load(0u);
   const matrix<float16_t, 2, 3> l_a_i = a_load_1((16u * uint(p_a_i_save)));
   const uint scalar_offset_2 = (((16u * uint(p_a_i_save)) + (8u * uint(p_a_i_i_save)))) / 4;
   uint4 ubo_load_5 = a[scalar_offset_2 / 4];
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
index deced27..552de65 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -29,7 +29,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 2, 3> l_a[4] = a_load(0u);
+  matrix<float16_t, 2, 3> l_a[4] = a_load(0u);
   const matrix<float16_t, 2, 3> l_a_i = a_load_1(32u);
   uint2 ubo_load_4 = a[2].zw;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index 64b377a..cdbea6b 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -29,7 +29,7 @@
 void f() {
   const int p_a_i_save = i();
   const int p_a_i_i_save = i();
-  const float2x3 l_a[4] = a_load(0u);
+  float2x3 l_a[4] = a_load(0u);
   const float2x3 l_a_i = a_load_1((32u * uint(p_a_i_save)));
   const uint scalar_offset_2 = (((32u * uint(p_a_i_save)) + (16u * uint(p_a_i_i_save)))) / 4;
   const float3 l_a_i_i = asfloat(a[scalar_offset_2 / 4].xyz);
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index 64b377a..cdbea6b 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -29,7 +29,7 @@
 void f() {
   const int p_a_i_save = i();
   const int p_a_i_i_save = i();
-  const float2x3 l_a[4] = a_load(0u);
+  float2x3 l_a[4] = a_load(0u);
   const float2x3 l_a_i = a_load_1((32u * uint(p_a_i_save)));
   const uint scalar_offset_2 = (((32u * uint(p_a_i_save)) + (16u * uint(p_a_i_i_save)))) / 4;
   const float3 l_a_i_i = asfloat(a[scalar_offset_2 / 4].xyz);
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
index e5d4f3a..7e19de5 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -21,7 +21,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const float2x3 l_a[4] = a_load(0u);
+  float2x3 l_a[4] = a_load(0u);
   const float2x3 l_a_i = a_load_1(64u);
   const float3 l_a_i_i = asfloat(a[5].xyz);
   return;
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
index e5d4f3a..7e19de5 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -21,7 +21,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const float2x3 l_a[4] = a_load(0u);
+  float2x3 l_a[4] = a_load(0u);
   const float2x3 l_a_i = a_load_1(64u);
   const float3 l_a_i_i = asfloat(a[5].xyz);
   return;
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index 59e8c98..438bd39 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -37,7 +37,7 @@
 void f() {
   const int p_a_i_save = i();
   const int p_a_i_i_save = i();
-  const matrix<float16_t, 2, 4> l_a[4] = a_load(0u);
+  matrix<float16_t, 2, 4> l_a[4] = a_load(0u);
   const matrix<float16_t, 2, 4> l_a_i = a_load_1((16u * uint(p_a_i_save)));
   const uint scalar_offset_2 = (((16u * uint(p_a_i_save)) + (8u * uint(p_a_i_i_save)))) / 4;
   uint4 ubo_load_5 = a[scalar_offset_2 / 4];
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
index efbb5ef..22d290b 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -29,7 +29,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 2, 4> l_a[4] = a_load(0u);
+  matrix<float16_t, 2, 4> l_a[4] = a_load(0u);
   const matrix<float16_t, 2, 4> l_a_i = a_load_1(32u);
   uint2 ubo_load_4 = a[2].zw;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index 33d087b..aa0f8bd 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -29,7 +29,7 @@
 void f() {
   const int p_a_i_save = i();
   const int p_a_i_i_save = i();
-  const float2x4 l_a[4] = a_load(0u);
+  float2x4 l_a[4] = a_load(0u);
   const float2x4 l_a_i = a_load_1((32u * uint(p_a_i_save)));
   const uint scalar_offset_2 = (((32u * uint(p_a_i_save)) + (16u * uint(p_a_i_i_save)))) / 4;
   const float4 l_a_i_i = asfloat(a[scalar_offset_2 / 4]);
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index 33d087b..aa0f8bd 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -29,7 +29,7 @@
 void f() {
   const int p_a_i_save = i();
   const int p_a_i_i_save = i();
-  const float2x4 l_a[4] = a_load(0u);
+  float2x4 l_a[4] = a_load(0u);
   const float2x4 l_a_i = a_load_1((32u * uint(p_a_i_save)));
   const uint scalar_offset_2 = (((32u * uint(p_a_i_save)) + (16u * uint(p_a_i_i_save)))) / 4;
   const float4 l_a_i_i = asfloat(a[scalar_offset_2 / 4]);
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
index 0401bbd..a1224f8 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -21,7 +21,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const float2x4 l_a[4] = a_load(0u);
+  float2x4 l_a[4] = a_load(0u);
   const float2x4 l_a_i = a_load_1(64u);
   const float4 l_a_i_i = asfloat(a[5]);
   return;
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
index 0401bbd..a1224f8 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -21,7 +21,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const float2x4 l_a[4] = a_load(0u);
+  float2x4 l_a[4] = a_load(0u);
   const float2x4 l_a_i = a_load_1(64u);
   const float4 l_a_i_i = asfloat(a[5]);
   return;
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index 9227114..44a2e47 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -30,7 +30,7 @@
 void f() {
   const int p_a_i_save = i();
   const int p_a_i_i_save = i();
-  const float3x3 l_a[4] = a_load(0u);
+  float3x3 l_a[4] = a_load(0u);
   const float3x3 l_a_i = a_load_1((48u * uint(p_a_i_save)));
   const uint scalar_offset_3 = (((48u * uint(p_a_i_save)) + (16u * uint(p_a_i_i_save)))) / 4;
   const float3 l_a_i_i = asfloat(a[scalar_offset_3 / 4].xyz);
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index 9227114..44a2e47 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -30,7 +30,7 @@
 void f() {
   const int p_a_i_save = i();
   const int p_a_i_i_save = i();
-  const float3x3 l_a[4] = a_load(0u);
+  float3x3 l_a[4] = a_load(0u);
   const float3x3 l_a_i = a_load_1((48u * uint(p_a_i_save)));
   const uint scalar_offset_3 = (((48u * uint(p_a_i_save)) + (16u * uint(p_a_i_i_save)))) / 4;
   const float3 l_a_i_i = asfloat(a[scalar_offset_3 / 4].xyz);
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
index 7502ea1..88f2001 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -22,7 +22,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const float3x3 l_a[4] = a_load(0u);
+  float3x3 l_a[4] = a_load(0u);
   const float3x3 l_a_i = a_load_1(96u);
   const float3 l_a_i_i = asfloat(a[7].xyz);
   return;
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
index 7502ea1..88f2001 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -22,7 +22,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const float3x3 l_a[4] = a_load(0u);
+  float3x3 l_a[4] = a_load(0u);
   const float3x3 l_a_i = a_load_1(96u);
   const float3 l_a_i_i = asfloat(a[7].xyz);
   return;
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index d79a313..b0a9725 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -30,7 +30,7 @@
 void f() {
   const int p_a_i_save = i();
   const int p_a_i_i_save = i();
-  const float3x4 l_a[4] = a_load(0u);
+  float3x4 l_a[4] = a_load(0u);
   const float3x4 l_a_i = a_load_1((48u * uint(p_a_i_save)));
   const uint scalar_offset_3 = (((48u * uint(p_a_i_save)) + (16u * uint(p_a_i_i_save)))) / 4;
   const float4 l_a_i_i = asfloat(a[scalar_offset_3 / 4]);
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index d79a313..b0a9725 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -30,7 +30,7 @@
 void f() {
   const int p_a_i_save = i();
   const int p_a_i_i_save = i();
-  const float3x4 l_a[4] = a_load(0u);
+  float3x4 l_a[4] = a_load(0u);
   const float3x4 l_a_i = a_load_1((48u * uint(p_a_i_save)));
   const uint scalar_offset_3 = (((48u * uint(p_a_i_save)) + (16u * uint(p_a_i_i_save)))) / 4;
   const float4 l_a_i_i = asfloat(a[scalar_offset_3 / 4]);
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
index d5c5bc2..b42b4a9 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -22,7 +22,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const float3x4 l_a[4] = a_load(0u);
+  float3x4 l_a[4] = a_load(0u);
   const float3x4 l_a_i = a_load_1(96u);
   const float4 l_a_i_i = asfloat(a[7]);
   return;
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
index d5c5bc2..b42b4a9 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -22,7 +22,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const float3x4 l_a[4] = a_load(0u);
+  float3x4 l_a[4] = a_load(0u);
   const float3x4 l_a_i = a_load_1(96u);
   const float4 l_a_i_i = asfloat(a[7]);
   return;
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index fd949ec..90b28cf 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -35,7 +35,7 @@
 void f() {
   const int p_a_i_save = i();
   const int p_a_i_i_save = i();
-  const matrix<float16_t, 4, 2> l_a[4] = a_load(0u);
+  matrix<float16_t, 4, 2> l_a[4] = a_load(0u);
   const matrix<float16_t, 4, 2> l_a_i = a_load_1((16u * uint(p_a_i_save)));
   const uint scalar_offset_4 = (((16u * uint(p_a_i_save)) + (4u * uint(p_a_i_i_save)))) / 4;
   uint ubo_load_4 = a[scalar_offset_4 / 4][scalar_offset_4 % 4];
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
index 6c7ea84..ff30876 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -27,7 +27,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 4, 2> l_a[4] = a_load(0u);
+  matrix<float16_t, 4, 2> l_a[4] = a_load(0u);
   const matrix<float16_t, 4, 2> l_a_i = a_load_1(32u);
   uint ubo_load_4 = a[2].y;
   const vector<float16_t, 2> l_a_i_i = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_4 & 0xFFFF)), float16_t(f16tof32(ubo_load_4 >> 16)));
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index db6ebf2..a1d6b0c 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -35,7 +35,7 @@
 void f() {
   const int p_a_i_save = i();
   const int p_a_i_i_save = i();
-  const float4x2 l_a[4] = a_load(0u);
+  float4x2 l_a[4] = a_load(0u);
   const float4x2 l_a_i = a_load_1((32u * uint(p_a_i_save)));
   const uint scalar_offset_4 = (((32u * uint(p_a_i_save)) + (8u * uint(p_a_i_i_save)))) / 4;
   uint4 ubo_load_4 = a[scalar_offset_4 / 4];
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index db6ebf2..a1d6b0c 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -35,7 +35,7 @@
 void f() {
   const int p_a_i_save = i();
   const int p_a_i_i_save = i();
-  const float4x2 l_a[4] = a_load(0u);
+  float4x2 l_a[4] = a_load(0u);
   const float4x2 l_a_i = a_load_1((32u * uint(p_a_i_save)));
   const uint scalar_offset_4 = (((32u * uint(p_a_i_save)) + (8u * uint(p_a_i_i_save)))) / 4;
   uint4 ubo_load_4 = a[scalar_offset_4 / 4];
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
index 2e90eeb..bd37ce8 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -27,7 +27,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const float4x2 l_a[4] = a_load(0u);
+  float4x2 l_a[4] = a_load(0u);
   const float4x2 l_a_i = a_load_1(64u);
   const float2 l_a_i_i = asfloat(a[4].zw);
   return;
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
index 2e90eeb..bd37ce8 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -27,7 +27,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const float4x2 l_a[4] = a_load(0u);
+  float4x2 l_a[4] = a_load(0u);
   const float4x2 l_a_i = a_load_1(64u);
   const float2 l_a_i_i = asfloat(a[4].zw);
   return;
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index b2627de..a482b03 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -47,7 +47,7 @@
 void f() {
   const int p_a_i_save = i();
   const int p_a_i_i_save = i();
-  const matrix<float16_t, 4, 3> l_a[4] = a_load(0u);
+  matrix<float16_t, 4, 3> l_a[4] = a_load(0u);
   const matrix<float16_t, 4, 3> l_a_i = a_load_1((32u * uint(p_a_i_save)));
   const uint scalar_offset_4 = (((32u * uint(p_a_i_save)) + (8u * uint(p_a_i_i_save)))) / 4;
   uint4 ubo_load_9 = a[scalar_offset_4 / 4];
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
index a71dbce..c62c8c8 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -39,7 +39,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 4, 3> l_a[4] = a_load(0u);
+  matrix<float16_t, 4, 3> l_a[4] = a_load(0u);
   const matrix<float16_t, 4, 3> l_a_i = a_load_1(64u);
   uint2 ubo_load_8 = a[4].zw;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index 9adf3fd..ea49eca 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -31,7 +31,7 @@
 void f() {
   const int p_a_i_save = i();
   const int p_a_i_i_save = i();
-  const float4x3 l_a[4] = a_load(0u);
+  float4x3 l_a[4] = a_load(0u);
   const float4x3 l_a_i = a_load_1((64u * uint(p_a_i_save)));
   const uint scalar_offset_4 = (((64u * uint(p_a_i_save)) + (16u * uint(p_a_i_i_save)))) / 4;
   const float3 l_a_i_i = asfloat(a[scalar_offset_4 / 4].xyz);
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index 9adf3fd..ea49eca 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -31,7 +31,7 @@
 void f() {
   const int p_a_i_save = i();
   const int p_a_i_i_save = i();
-  const float4x3 l_a[4] = a_load(0u);
+  float4x3 l_a[4] = a_load(0u);
   const float4x3 l_a_i = a_load_1((64u * uint(p_a_i_save)));
   const uint scalar_offset_4 = (((64u * uint(p_a_i_save)) + (16u * uint(p_a_i_i_save)))) / 4;
   const float3 l_a_i_i = asfloat(a[scalar_offset_4 / 4].xyz);
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
index 20040b8..db23b7f 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -23,7 +23,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const float4x3 l_a[4] = a_load(0u);
+  float4x3 l_a[4] = a_load(0u);
   const float4x3 l_a_i = a_load_1(128u);
   const float3 l_a_i_i = asfloat(a[9].xyz);
   return;
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
index 20040b8..db23b7f 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -23,7 +23,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const float4x3 l_a[4] = a_load(0u);
+  float4x3 l_a[4] = a_load(0u);
   const float4x3 l_a_i = a_load_1(128u);
   const float3 l_a_i_i = asfloat(a[9].xyz);
   return;
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index 1d5756a..6d49140 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -47,7 +47,7 @@
 void f() {
   const int p_a_i_save = i();
   const int p_a_i_i_save = i();
-  const matrix<float16_t, 4, 4> l_a[4] = a_load(0u);
+  matrix<float16_t, 4, 4> l_a[4] = a_load(0u);
   const matrix<float16_t, 4, 4> l_a_i = a_load_1((32u * uint(p_a_i_save)));
   const uint scalar_offset_4 = (((32u * uint(p_a_i_save)) + (8u * uint(p_a_i_i_save)))) / 4;
   uint4 ubo_load_9 = a[scalar_offset_4 / 4];
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
index 82e465c..3cd8feb 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -39,7 +39,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const matrix<float16_t, 4, 4> l_a[4] = a_load(0u);
+  matrix<float16_t, 4, 4> l_a[4] = a_load(0u);
   const matrix<float16_t, 4, 4> l_a_i = a_load_1(64u);
   uint2 ubo_load_8 = a[4].zw;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index 20494f3..5077d7c 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -31,7 +31,7 @@
 void f() {
   const int p_a_i_save = i();
   const int p_a_i_i_save = i();
-  const float4x4 l_a[4] = a_load(0u);
+  float4x4 l_a[4] = a_load(0u);
   const float4x4 l_a_i = a_load_1((64u * uint(p_a_i_save)));
   const uint scalar_offset_4 = (((64u * uint(p_a_i_save)) + (16u * uint(p_a_i_i_save)))) / 4;
   const float4 l_a_i_i = asfloat(a[scalar_offset_4 / 4]);
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index 20494f3..5077d7c 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -31,7 +31,7 @@
 void f() {
   const int p_a_i_save = i();
   const int p_a_i_i_save = i();
-  const float4x4 l_a[4] = a_load(0u);
+  float4x4 l_a[4] = a_load(0u);
   const float4x4 l_a_i = a_load_1((64u * uint(p_a_i_save)));
   const uint scalar_offset_4 = (((64u * uint(p_a_i_save)) + (16u * uint(p_a_i_i_save)))) / 4;
   const float4 l_a_i_i = asfloat(a[scalar_offset_4 / 4]);
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
index 5061cef..c80c0cf 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -23,7 +23,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const float4x4 l_a[4] = a_load(0u);
+  float4x4 l_a[4] = a_load(0u);
   const float4x4 l_a_i = a_load_1(128u);
   const float4 l_a_i_i = asfloat(a[9]);
   return;
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
index 5061cef..c80c0cf 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -23,7 +23,7 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const float4x4 l_a[4] = a_load(0u);
+  float4x4 l_a[4] = a_load(0u);
   const float4x4 l_a_i = a_load_1(128u);
   const float4 l_a_i_i = asfloat(a[9]);
   return;
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index b099165..137eec7 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -24,7 +24,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  Inner tint_symbol_4 = {a_load_4((offset + 0u))};
   return tint_symbol_4;
 }
 
@@ -40,7 +40,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_5 = {a_load_2((offset + 0u))};
   return tint_symbol_5;
 }
 
@@ -60,10 +60,10 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const matrix<float16_t, 2, 2> l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_2 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (4u * uint(p_a_i_a_i_m_i_save)))) / 4;
   uint ubo_load_2 = a[scalar_offset_2 / 4][scalar_offset_2 % 4];
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
index 8abb195..459a815 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -18,7 +18,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  Inner tint_symbol = {a_load_4((offset + 0u))};
   return tint_symbol;
 }
 
@@ -34,7 +34,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_1 = {a_load_2((offset + 0u))};
   return tint_symbol_1;
 }
 
@@ -51,10 +51,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_3 = a_load_1(768u);
-  const Inner l_a_3_a[4] = a_load_2(768u);
-  const Inner l_a_3_a_2 = a_load_3(896u);
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_3 = a_load_1(768u);
+  Inner l_a_3_a[4] = a_load_2(768u);
+  Inner l_a_3_a_2 = a_load_3(896u);
   const matrix<float16_t, 2, 2> l_a_3_a_2_m = a_load_4(896u);
   uint ubo_load_2 = a[56].y;
   const vector<float16_t, 2> l_a_3_a_2_m_1 = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_2 & 0xFFFF)), float16_t(f16tof32(ubo_load_2 >> 16)));
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_fn.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_fn.wgsl.expected.dxc.hlsl
index e96ac15..364fee7 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_fn.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_fn.wgsl.expected.dxc.hlsl
@@ -34,7 +34,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_private.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_private.wgsl.expected.dxc.hlsl
index 70af4ec..e8bf94f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_private.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_private.wgsl.expected.dxc.hlsl
@@ -20,7 +20,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_storage.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_storage.wgsl.expected.dxc.hlsl
index 485c14d..f1699d2 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_storage.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_storage.wgsl.expected.dxc.hlsl
@@ -40,7 +40,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_workgroup.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_workgroup.wgsl.expected.dxc.hlsl
index 5b2236a..1edfa38 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_workgroup.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_workgroup.wgsl.expected.dxc.hlsl
@@ -24,7 +24,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol_3 = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol_3 = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol_3;
 }
 
@@ -43,7 +43,7 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_2 = (S)0;
+      S tint_symbol_2 = (S)0;
       w[i] = tint_symbol_2;
     }
   }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index f21e98b..4041049 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -24,7 +24,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  Inner tint_symbol_4 = {a_load_4((offset + 0u))};
   return tint_symbol_4;
 }
 
@@ -40,7 +40,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_5 = {a_load_2((offset + 0u))};
   return tint_symbol_5;
 }
 
@@ -60,10 +60,10 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const float2x2 l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_2 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (8u * uint(p_a_i_a_i_m_i_save)))) / 4;
   uint4 ubo_load_2 = a[scalar_offset_2 / 4];
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index f21e98b..4041049 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -24,7 +24,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  Inner tint_symbol_4 = {a_load_4((offset + 0u))};
   return tint_symbol_4;
 }
 
@@ -40,7 +40,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_5 = {a_load_2((offset + 0u))};
   return tint_symbol_5;
 }
 
@@ -60,10 +60,10 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const float2x2 l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_2 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (8u * uint(p_a_i_a_i_m_i_save)))) / 4;
   uint4 ubo_load_2 = a[scalar_offset_2 / 4];
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
index 5596238..f94ded1 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -18,7 +18,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  Inner tint_symbol = {a_load_4((offset + 0u))};
   return tint_symbol;
 }
 
@@ -34,7 +34,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_1 = {a_load_2((offset + 0u))};
   return tint_symbol_1;
 }
 
@@ -51,10 +51,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_3 = a_load_1(768u);
-  const Inner l_a_3_a[4] = a_load_2(768u);
-  const Inner l_a_3_a_2 = a_load_3(896u);
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_3 = a_load_1(768u);
+  Inner l_a_3_a[4] = a_load_2(768u);
+  Inner l_a_3_a_2 = a_load_3(896u);
   const float2x2 l_a_3_a_2_m = a_load_4(896u);
   const float2 l_a_3_a_2_m_1 = asfloat(a[56].zw);
   const float l_a_3_a_2_m_1_0 = asfloat(a[56].z);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
index 5596238..f94ded1 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -18,7 +18,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  Inner tint_symbol = {a_load_4((offset + 0u))};
   return tint_symbol;
 }
 
@@ -34,7 +34,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_1 = {a_load_2((offset + 0u))};
   return tint_symbol_1;
 }
 
@@ -51,10 +51,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_3 = a_load_1(768u);
-  const Inner l_a_3_a[4] = a_load_2(768u);
-  const Inner l_a_3_a_2 = a_load_3(896u);
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_3 = a_load_1(768u);
+  Inner l_a_3_a[4] = a_load_2(768u);
+  Inner l_a_3_a_2 = a_load_3(896u);
   const float2x2 l_a_3_a_2_m = a_load_4(896u);
   const float2 l_a_3_a_2_m_1 = asfloat(a[56].zw);
   const float l_a_3_a_2_m_1_0 = asfloat(a[56].z);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.dxc.hlsl
index edad54a..f5bf09b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.dxc.hlsl
@@ -34,7 +34,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.fxc.hlsl
index edad54a..f5bf09b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.fxc.hlsl
@@ -34,7 +34,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.dxc.hlsl
index bf1c9da..4f3689e 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.dxc.hlsl
@@ -20,7 +20,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.fxc.hlsl
index bf1c9da..4f3689e 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.fxc.hlsl
@@ -20,7 +20,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_storage.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_storage.wgsl.expected.dxc.hlsl
index 159ff60..3220d78 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_storage.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_storage.wgsl.expected.dxc.hlsl
@@ -40,7 +40,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_storage.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_storage.wgsl.expected.fxc.hlsl
index 159ff60..3220d78 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_storage.wgsl.expected.fxc.hlsl
@@ -40,7 +40,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.dxc.hlsl
index 62aad3b..2e7cacd 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.dxc.hlsl
@@ -24,7 +24,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol_3 = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol_3 = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol_3;
 }
 
@@ -43,7 +43,7 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_2 = (S)0;
+      S tint_symbol_2 = (S)0;
       w[i] = tint_symbol_2;
     }
   }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.fxc.hlsl
index 62aad3b..2e7cacd 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.fxc.hlsl
@@ -24,7 +24,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol_3 = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol_3 = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol_3;
 }
 
@@ -43,7 +43,7 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_2 = (S)0;
+      S tint_symbol_2 = (S)0;
       w[i] = tint_symbol_2;
     }
   }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index cfcb1f2..af2225e 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -30,7 +30,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  Inner tint_symbol_4 = {a_load_4((offset + 0u))};
   return tint_symbol_4;
 }
 
@@ -46,7 +46,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_5 = {a_load_2((offset + 0u))};
   return tint_symbol_5;
 }
 
@@ -66,10 +66,10 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const matrix<float16_t, 2, 3> l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_2 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (8u * uint(p_a_i_a_i_m_i_save)))) / 4;
   uint4 ubo_load_5 = a[scalar_offset_2 / 4];
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
index c760845..c0cb6d3 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -24,7 +24,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  Inner tint_symbol = {a_load_4((offset + 0u))};
   return tint_symbol;
 }
 
@@ -40,7 +40,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_1 = {a_load_2((offset + 0u))};
   return tint_symbol_1;
 }
 
@@ -57,10 +57,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_3 = a_load_1(768u);
-  const Inner l_a_3_a[4] = a_load_2(768u);
-  const Inner l_a_3_a_2 = a_load_3(896u);
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_3 = a_load_1(768u);
+  Inner l_a_3_a[4] = a_load_2(768u);
+  Inner l_a_3_a_2 = a_load_3(896u);
   const matrix<float16_t, 2, 3> l_a_3_a_2_m = a_load_4(896u);
   uint2 ubo_load_4 = a[56].zw;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_fn.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_fn.wgsl.expected.dxc.hlsl
index 9ab77c3..8e9de94 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_fn.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_fn.wgsl.expected.dxc.hlsl
@@ -40,7 +40,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_private.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_private.wgsl.expected.dxc.hlsl
index b536ea8..0818a2d 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_private.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_private.wgsl.expected.dxc.hlsl
@@ -26,7 +26,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_storage.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_storage.wgsl.expected.dxc.hlsl
index e2a77c0..05a29fc 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_storage.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_storage.wgsl.expected.dxc.hlsl
@@ -46,7 +46,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_workgroup.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_workgroup.wgsl.expected.dxc.hlsl
index 292d02d..0ba1f13 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_workgroup.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_workgroup.wgsl.expected.dxc.hlsl
@@ -30,7 +30,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol_3 = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol_3 = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol_3;
 }
 
@@ -49,7 +49,7 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_2 = (S)0;
+      S tint_symbol_2 = (S)0;
       w[i] = tint_symbol_2;
     }
   }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index c4463f1..6a6d4b8 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -22,7 +22,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  Inner tint_symbol_4 = {a_load_4((offset + 0u))};
   return tint_symbol_4;
 }
 
@@ -38,7 +38,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_5 = {a_load_2((offset + 0u))};
   return tint_symbol_5;
 }
 
@@ -58,10 +58,10 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const float2x3 l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_2 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (16u * uint(p_a_i_a_i_m_i_save)))) / 4;
   const float3 l_a_i_a_i_m_i = asfloat(a[scalar_offset_2 / 4].xyz);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index c4463f1..6a6d4b8 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -22,7 +22,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  Inner tint_symbol_4 = {a_load_4((offset + 0u))};
   return tint_symbol_4;
 }
 
@@ -38,7 +38,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_5 = {a_load_2((offset + 0u))};
   return tint_symbol_5;
 }
 
@@ -58,10 +58,10 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const float2x3 l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_2 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (16u * uint(p_a_i_a_i_m_i_save)))) / 4;
   const float3 l_a_i_a_i_m_i = asfloat(a[scalar_offset_2 / 4].xyz);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
index 91c037b..60b1113 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -16,7 +16,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  Inner tint_symbol = {a_load_4((offset + 0u))};
   return tint_symbol;
 }
 
@@ -32,7 +32,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_1 = {a_load_2((offset + 0u))};
   return tint_symbol_1;
 }
 
@@ -49,10 +49,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_3 = a_load_1(768u);
-  const Inner l_a_3_a[4] = a_load_2(768u);
-  const Inner l_a_3_a_2 = a_load_3(896u);
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_3 = a_load_1(768u);
+  Inner l_a_3_a[4] = a_load_2(768u);
+  Inner l_a_3_a_2 = a_load_3(896u);
   const float2x3 l_a_3_a_2_m = a_load_4(896u);
   const float3 l_a_3_a_2_m_1 = asfloat(a[57].xyz);
   const float l_a_3_a_2_m_1_0 = asfloat(a[57].x);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
index 91c037b..60b1113 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -16,7 +16,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  Inner tint_symbol = {a_load_4((offset + 0u))};
   return tint_symbol;
 }
 
@@ -32,7 +32,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_1 = {a_load_2((offset + 0u))};
   return tint_symbol_1;
 }
 
@@ -49,10 +49,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_3 = a_load_1(768u);
-  const Inner l_a_3_a[4] = a_load_2(768u);
-  const Inner l_a_3_a_2 = a_load_3(896u);
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_3 = a_load_1(768u);
+  Inner l_a_3_a[4] = a_load_2(768u);
+  Inner l_a_3_a_2 = a_load_3(896u);
   const float2x3 l_a_3_a_2_m = a_load_4(896u);
   const float3 l_a_3_a_2_m_1 = asfloat(a[57].xyz);
   const float l_a_3_a_2_m_1_0 = asfloat(a[57].x);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.dxc.hlsl
index 963820f..6ef592b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.dxc.hlsl
@@ -32,7 +32,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.fxc.hlsl
index 963820f..6ef592b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.fxc.hlsl
@@ -32,7 +32,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.dxc.hlsl
index 5107874..ebf29ec 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.dxc.hlsl
@@ -18,7 +18,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.fxc.hlsl
index 5107874..ebf29ec 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.fxc.hlsl
@@ -18,7 +18,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_storage.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_storage.wgsl.expected.dxc.hlsl
index 1ff130c..8f1589f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_storage.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_storage.wgsl.expected.dxc.hlsl
@@ -38,7 +38,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_storage.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_storage.wgsl.expected.fxc.hlsl
index 1ff130c..8f1589f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_storage.wgsl.expected.fxc.hlsl
@@ -38,7 +38,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.dxc.hlsl
index cdc7fb9..047e232 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.dxc.hlsl
@@ -22,7 +22,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol_3 = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol_3 = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol_3;
 }
 
@@ -41,7 +41,7 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_2 = (S)0;
+      S tint_symbol_2 = (S)0;
       w[i] = tint_symbol_2;
     }
   }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.fxc.hlsl
index cdc7fb9..047e232 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.fxc.hlsl
@@ -22,7 +22,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol_3 = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol_3 = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol_3;
 }
 
@@ -41,7 +41,7 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_2 = (S)0;
+      S tint_symbol_2 = (S)0;
       w[i] = tint_symbol_2;
     }
   }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index 47f4090..35638bd 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -30,7 +30,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  Inner tint_symbol_4 = {a_load_4((offset + 0u))};
   return tint_symbol_4;
 }
 
@@ -46,7 +46,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_5 = {a_load_2((offset + 0u))};
   return tint_symbol_5;
 }
 
@@ -66,10 +66,10 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const matrix<float16_t, 2, 4> l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_2 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (8u * uint(p_a_i_a_i_m_i_save)))) / 4;
   uint4 ubo_load_5 = a[scalar_offset_2 / 4];
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
index 7c667e6..a0bd4fa 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -24,7 +24,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  Inner tint_symbol = {a_load_4((offset + 0u))};
   return tint_symbol;
 }
 
@@ -40,7 +40,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_1 = {a_load_2((offset + 0u))};
   return tint_symbol_1;
 }
 
@@ -57,10 +57,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_3 = a_load_1(768u);
-  const Inner l_a_3_a[4] = a_load_2(768u);
-  const Inner l_a_3_a_2 = a_load_3(896u);
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_3 = a_load_1(768u);
+  Inner l_a_3_a[4] = a_load_2(768u);
+  Inner l_a_3_a_2 = a_load_3(896u);
   const matrix<float16_t, 2, 4> l_a_3_a_2_m = a_load_4(896u);
   uint2 ubo_load_4 = a[56].zw;
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_fn.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_fn.wgsl.expected.dxc.hlsl
index bc3596c..29d6b7f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_fn.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_fn.wgsl.expected.dxc.hlsl
@@ -40,7 +40,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_private.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_private.wgsl.expected.dxc.hlsl
index c8806c6..76d4039 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_private.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_private.wgsl.expected.dxc.hlsl
@@ -26,7 +26,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_storage.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_storage.wgsl.expected.dxc.hlsl
index 2e3231a..5ecaf29 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_storage.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_storage.wgsl.expected.dxc.hlsl
@@ -46,7 +46,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_workgroup.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_workgroup.wgsl.expected.dxc.hlsl
index eaaa155..2a556bd 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_workgroup.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_workgroup.wgsl.expected.dxc.hlsl
@@ -30,7 +30,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol_3 = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol_3 = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol_3;
 }
 
@@ -49,7 +49,7 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_2 = (S)0;
+      S tint_symbol_2 = (S)0;
       w[i] = tint_symbol_2;
     }
   }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index f013f4f..d1c8ffe 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -22,7 +22,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  Inner tint_symbol_4 = {a_load_4((offset + 0u))};
   return tint_symbol_4;
 }
 
@@ -38,7 +38,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_5 = {a_load_2((offset + 0u))};
   return tint_symbol_5;
 }
 
@@ -58,10 +58,10 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const float2x4 l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_2 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (16u * uint(p_a_i_a_i_m_i_save)))) / 4;
   const float4 l_a_i_a_i_m_i = asfloat(a[scalar_offset_2 / 4]);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index f013f4f..d1c8ffe 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -22,7 +22,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  Inner tint_symbol_4 = {a_load_4((offset + 0u))};
   return tint_symbol_4;
 }
 
@@ -38,7 +38,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_5 = {a_load_2((offset + 0u))};
   return tint_symbol_5;
 }
 
@@ -58,10 +58,10 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const float2x4 l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_2 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (16u * uint(p_a_i_a_i_m_i_save)))) / 4;
   const float4 l_a_i_a_i_m_i = asfloat(a[scalar_offset_2 / 4]);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
index a54698d..34a9ccb 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -16,7 +16,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  Inner tint_symbol = {a_load_4((offset + 0u))};
   return tint_symbol;
 }
 
@@ -32,7 +32,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_1 = {a_load_2((offset + 0u))};
   return tint_symbol_1;
 }
 
@@ -49,10 +49,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_3 = a_load_1(768u);
-  const Inner l_a_3_a[4] = a_load_2(768u);
-  const Inner l_a_3_a_2 = a_load_3(896u);
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_3 = a_load_1(768u);
+  Inner l_a_3_a[4] = a_load_2(768u);
+  Inner l_a_3_a_2 = a_load_3(896u);
   const float2x4 l_a_3_a_2_m = a_load_4(896u);
   const float4 l_a_3_a_2_m_1 = asfloat(a[57]);
   const float l_a_3_a_2_m_1_0 = asfloat(a[57].x);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
index a54698d..34a9ccb 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -16,7 +16,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  Inner tint_symbol = {a_load_4((offset + 0u))};
   return tint_symbol;
 }
 
@@ -32,7 +32,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_1 = {a_load_2((offset + 0u))};
   return tint_symbol_1;
 }
 
@@ -49,10 +49,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_3 = a_load_1(768u);
-  const Inner l_a_3_a[4] = a_load_2(768u);
-  const Inner l_a_3_a_2 = a_load_3(896u);
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_3 = a_load_1(768u);
+  Inner l_a_3_a[4] = a_load_2(768u);
+  Inner l_a_3_a_2 = a_load_3(896u);
   const float2x4 l_a_3_a_2_m = a_load_4(896u);
   const float4 l_a_3_a_2_m_1 = asfloat(a[57]);
   const float l_a_3_a_2_m_1_0 = asfloat(a[57].x);
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.dxc.hlsl
index af80057..4cd1c7b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.dxc.hlsl
@@ -32,7 +32,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.fxc.hlsl
index af80057..4cd1c7b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.fxc.hlsl
@@ -32,7 +32,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.dxc.hlsl
index fc81f93..6ebb529 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.dxc.hlsl
@@ -18,7 +18,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.fxc.hlsl
index fc81f93..6ebb529 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.fxc.hlsl
@@ -18,7 +18,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_storage.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_storage.wgsl.expected.dxc.hlsl
index 438a1a1..0d5b185 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_storage.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_storage.wgsl.expected.dxc.hlsl
@@ -38,7 +38,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_storage.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_storage.wgsl.expected.fxc.hlsl
index 438a1a1..0d5b185 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_storage.wgsl.expected.fxc.hlsl
@@ -38,7 +38,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.dxc.hlsl
index 9012a88..97cfee3 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.dxc.hlsl
@@ -22,7 +22,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol_3 = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol_3 = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol_3;
 }
 
@@ -41,7 +41,7 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_2 = (S)0;
+      S tint_symbol_2 = (S)0;
       w[i] = tint_symbol_2;
     }
   }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.fxc.hlsl
index 9012a88..97cfee3 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.fxc.hlsl
@@ -22,7 +22,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 64u)) / 4;
-  const S tint_symbol_3 = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
+  S tint_symbol_3 = {asint(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4])};
   return tint_symbol_3;
 }
 
@@ -41,7 +41,7 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_2 = (S)0;
+      S tint_symbol_2 = (S)0;
       w[i] = tint_symbol_2;
     }
   }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index bf6a683..bb3cd53 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -26,7 +26,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  Inner tint_symbol_4 = {a_load_4((offset + 0u))};
   return tint_symbol_4;
 }
 
@@ -42,7 +42,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_5 = {a_load_2((offset + 0u))};
   return tint_symbol_5;
 }
 
@@ -62,10 +62,10 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const matrix<float16_t, 3, 2> l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_3 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (4u * uint(p_a_i_a_i_m_i_save)))) / 4;
   uint ubo_load_3 = a[scalar_offset_3 / 4][scalar_offset_3 % 4];
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
index d7cbb29..639c29c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -20,7 +20,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  Inner tint_symbol = {a_load_4((offset + 0u))};
   return tint_symbol;
 }
 
@@ -36,7 +36,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_1 = {a_load_2((offset + 0u))};
   return tint_symbol_1;
 }
 
@@ -53,10 +53,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_3 = a_load_1(768u);
-  const Inner l_a_3_a[4] = a_load_2(768u);
-  const Inner l_a_3_a_2 = a_load_3(896u);
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_3 = a_load_1(768u);
+  Inner l_a_3_a[4] = a_load_2(768u);
+  Inner l_a_3_a_2 = a_load_3(896u);
   const matrix<float16_t, 3, 2> l_a_3_a_2_m = a_load_4(896u);
   uint ubo_load_3 = a[56].y;
   const vector<float16_t, 2> l_a_3_a_2_m_1 = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_3 & 0xFFFF)), float16_t(f16tof32(ubo_load_3 >> 16)));
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_fn.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_fn.wgsl.expected.dxc.hlsl
index 4172a72..dfc77e4 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_fn.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_fn.wgsl.expected.dxc.hlsl
@@ -36,7 +36,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_private.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_private.wgsl.expected.dxc.hlsl
index 1cdb460..45d34b0 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_private.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_private.wgsl.expected.dxc.hlsl
@@ -22,7 +22,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_storage.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_storage.wgsl.expected.dxc.hlsl
index 07a35d7..e398e87 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_storage.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_storage.wgsl.expected.dxc.hlsl
@@ -43,7 +43,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_workgroup.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_workgroup.wgsl.expected.dxc.hlsl
index be35770..2519958 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_workgroup.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_workgroup.wgsl.expected.dxc.hlsl
@@ -26,7 +26,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol_3 = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol_3 = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol_3;
 }
 
@@ -45,7 +45,7 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_2 = (S)0;
+      S tint_symbol_2 = (S)0;
       w[i] = tint_symbol_2;
     }
   }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index 3c1af5b..215445c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -26,7 +26,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  Inner tint_symbol_4 = {a_load_4((offset + 0u))};
   return tint_symbol_4;
 }
 
@@ -42,7 +42,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_5 = {a_load_2((offset + 0u))};
   return tint_symbol_5;
 }
 
@@ -62,10 +62,10 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const float3x2 l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_3 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (8u * uint(p_a_i_a_i_m_i_save)))) / 4;
   uint4 ubo_load_3 = a[scalar_offset_3 / 4];
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index 3c1af5b..215445c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -26,7 +26,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  Inner tint_symbol_4 = {a_load_4((offset + 0u))};
   return tint_symbol_4;
 }
 
@@ -42,7 +42,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_5 = {a_load_2((offset + 0u))};
   return tint_symbol_5;
 }
 
@@ -62,10 +62,10 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const float3x2 l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_3 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (8u * uint(p_a_i_a_i_m_i_save)))) / 4;
   uint4 ubo_load_3 = a[scalar_offset_3 / 4];
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
index 54b6738..729b36c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -20,7 +20,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  Inner tint_symbol = {a_load_4((offset + 0u))};
   return tint_symbol;
 }
 
@@ -36,7 +36,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_1 = {a_load_2((offset + 0u))};
   return tint_symbol_1;
 }
 
@@ -53,10 +53,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_3 = a_load_1(768u);
-  const Inner l_a_3_a[4] = a_load_2(768u);
-  const Inner l_a_3_a_2 = a_load_3(896u);
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_3 = a_load_1(768u);
+  Inner l_a_3_a[4] = a_load_2(768u);
+  Inner l_a_3_a_2 = a_load_3(896u);
   const float3x2 l_a_3_a_2_m = a_load_4(896u);
   const float2 l_a_3_a_2_m_1 = asfloat(a[56].zw);
   const float l_a_3_a_2_m_1_0 = asfloat(a[56].z);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
index 54b6738..729b36c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -20,7 +20,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  Inner tint_symbol = {a_load_4((offset + 0u))};
   return tint_symbol;
 }
 
@@ -36,7 +36,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_1 = {a_load_2((offset + 0u))};
   return tint_symbol_1;
 }
 
@@ -53,10 +53,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_3 = a_load_1(768u);
-  const Inner l_a_3_a[4] = a_load_2(768u);
-  const Inner l_a_3_a_2 = a_load_3(896u);
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_3 = a_load_1(768u);
+  Inner l_a_3_a[4] = a_load_2(768u);
+  Inner l_a_3_a_2 = a_load_3(896u);
   const float3x2 l_a_3_a_2_m = a_load_4(896u);
   const float2 l_a_3_a_2_m_1 = asfloat(a[56].zw);
   const float l_a_3_a_2_m_1_0 = asfloat(a[56].z);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.dxc.hlsl
index cd26a7c..d32bc23 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.dxc.hlsl
@@ -36,7 +36,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.fxc.hlsl
index cd26a7c..d32bc23 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.fxc.hlsl
@@ -36,7 +36,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.dxc.hlsl
index e7dc299..1eb8dce 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.dxc.hlsl
@@ -22,7 +22,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.fxc.hlsl
index e7dc299..1eb8dce 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.fxc.hlsl
@@ -22,7 +22,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_storage.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_storage.wgsl.expected.dxc.hlsl
index f6fba1c..bdb0d57 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_storage.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_storage.wgsl.expected.dxc.hlsl
@@ -43,7 +43,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_storage.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_storage.wgsl.expected.fxc.hlsl
index f6fba1c..bdb0d57 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_storage.wgsl.expected.fxc.hlsl
@@ -43,7 +43,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.dxc.hlsl
index 2574469..8b89e8a 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.dxc.hlsl
@@ -26,7 +26,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol_3 = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol_3 = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol_3;
 }
 
@@ -45,7 +45,7 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_2 = (S)0;
+      S tint_symbol_2 = (S)0;
       w[i] = tint_symbol_2;
     }
   }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.fxc.hlsl
index 2574469..8b89e8a 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.fxc.hlsl
@@ -26,7 +26,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol_3 = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol_3 = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol_3;
 }
 
@@ -45,7 +45,7 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_2 = (S)0;
+      S tint_symbol_2 = (S)0;
       w[i] = tint_symbol_2;
     }
   }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index 495f6de..b52b050 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -35,7 +35,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  Inner tint_symbol_4 = {a_load_4((offset + 0u))};
   return tint_symbol_4;
 }
 
@@ -51,7 +51,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_5 = {a_load_2((offset + 0u))};
   return tint_symbol_5;
 }
 
@@ -71,10 +71,10 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const matrix<float16_t, 3, 3> l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_3 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (8u * uint(p_a_i_a_i_m_i_save)))) / 4;
   uint4 ubo_load_7 = a[scalar_offset_3 / 4];
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
index e3adec1..8b8230f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -29,7 +29,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  Inner tint_symbol = {a_load_4((offset + 0u))};
   return tint_symbol;
 }
 
@@ -45,7 +45,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_1 = {a_load_2((offset + 0u))};
   return tint_symbol_1;
 }
 
@@ -62,10 +62,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_3 = a_load_1(768u);
-  const Inner l_a_3_a[4] = a_load_2(768u);
-  const Inner l_a_3_a_2 = a_load_3(896u);
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_3 = a_load_1(768u);
+  Inner l_a_3_a[4] = a_load_2(768u);
+  Inner l_a_3_a_2 = a_load_3(896u);
   const matrix<float16_t, 3, 3> l_a_3_a_2_m = a_load_4(896u);
   uint2 ubo_load_6 = a[56].zw;
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_fn.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_fn.wgsl.expected.dxc.hlsl
index bb9e2de..f2e49ac 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_fn.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_fn.wgsl.expected.dxc.hlsl
@@ -45,7 +45,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_private.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_private.wgsl.expected.dxc.hlsl
index 9f037f1..a1e1c70 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_private.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_private.wgsl.expected.dxc.hlsl
@@ -31,7 +31,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_storage.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_storage.wgsl.expected.dxc.hlsl
index dfaa96d..9ca2da0 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_storage.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_storage.wgsl.expected.dxc.hlsl
@@ -52,7 +52,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_workgroup.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_workgroup.wgsl.expected.dxc.hlsl
index b1e05f6..6a6f888 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_workgroup.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_workgroup.wgsl.expected.dxc.hlsl
@@ -35,7 +35,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol_3 = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol_3 = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol_3;
 }
 
@@ -54,7 +54,7 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_2 = (S)0;
+      S tint_symbol_2 = (S)0;
       w[i] = tint_symbol_2;
     }
   }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index 54aab28..1b6f7bc 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -23,7 +23,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  Inner tint_symbol_4 = {a_load_4((offset + 0u))};
   return tint_symbol_4;
 }
 
@@ -39,7 +39,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_5 = {a_load_2((offset + 0u))};
   return tint_symbol_5;
 }
 
@@ -59,10 +59,10 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const float3x3 l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_3 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (16u * uint(p_a_i_a_i_m_i_save)))) / 4;
   const float3 l_a_i_a_i_m_i = asfloat(a[scalar_offset_3 / 4].xyz);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index 54aab28..1b6f7bc 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -23,7 +23,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  Inner tint_symbol_4 = {a_load_4((offset + 0u))};
   return tint_symbol_4;
 }
 
@@ -39,7 +39,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_5 = {a_load_2((offset + 0u))};
   return tint_symbol_5;
 }
 
@@ -59,10 +59,10 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const float3x3 l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_3 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (16u * uint(p_a_i_a_i_m_i_save)))) / 4;
   const float3 l_a_i_a_i_m_i = asfloat(a[scalar_offset_3 / 4].xyz);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
index b1f549e..1467639 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -17,7 +17,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  Inner tint_symbol = {a_load_4((offset + 0u))};
   return tint_symbol;
 }
 
@@ -33,7 +33,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_1 = {a_load_2((offset + 0u))};
   return tint_symbol_1;
 }
 
@@ -50,10 +50,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_3 = a_load_1(768u);
-  const Inner l_a_3_a[4] = a_load_2(768u);
-  const Inner l_a_3_a_2 = a_load_3(896u);
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_3 = a_load_1(768u);
+  Inner l_a_3_a[4] = a_load_2(768u);
+  Inner l_a_3_a_2 = a_load_3(896u);
   const float3x3 l_a_3_a_2_m = a_load_4(896u);
   const float3 l_a_3_a_2_m_1 = asfloat(a[57].xyz);
   const float l_a_3_a_2_m_1_0 = asfloat(a[57].x);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
index b1f549e..1467639 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -17,7 +17,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  Inner tint_symbol = {a_load_4((offset + 0u))};
   return tint_symbol;
 }
 
@@ -33,7 +33,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_1 = {a_load_2((offset + 0u))};
   return tint_symbol_1;
 }
 
@@ -50,10 +50,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_3 = a_load_1(768u);
-  const Inner l_a_3_a[4] = a_load_2(768u);
-  const Inner l_a_3_a_2 = a_load_3(896u);
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_3 = a_load_1(768u);
+  Inner l_a_3_a[4] = a_load_2(768u);
+  Inner l_a_3_a_2 = a_load_3(896u);
   const float3x3 l_a_3_a_2_m = a_load_4(896u);
   const float3 l_a_3_a_2_m_1 = asfloat(a[57].xyz);
   const float l_a_3_a_2_m_1_0 = asfloat(a[57].x);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.dxc.hlsl
index 47b0505..d09248f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.dxc.hlsl
@@ -33,7 +33,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.fxc.hlsl
index 47b0505..d09248f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.fxc.hlsl
@@ -33,7 +33,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.dxc.hlsl
index fb6dad5..cd128dc 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.dxc.hlsl
@@ -19,7 +19,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.fxc.hlsl
index fb6dad5..cd128dc 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.fxc.hlsl
@@ -19,7 +19,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_storage.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_storage.wgsl.expected.dxc.hlsl
index 9d3049f..294a94c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_storage.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_storage.wgsl.expected.dxc.hlsl
@@ -40,7 +40,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_storage.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_storage.wgsl.expected.fxc.hlsl
index 9d3049f..294a94c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_storage.wgsl.expected.fxc.hlsl
@@ -40,7 +40,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.dxc.hlsl
index 4c72a86..00eeaf5 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.dxc.hlsl
@@ -23,7 +23,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol_3 = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol_3 = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol_3;
 }
 
@@ -42,7 +42,7 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_2 = (S)0;
+      S tint_symbol_2 = (S)0;
       w[i] = tint_symbol_2;
     }
   }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.fxc.hlsl
index 4c72a86..00eeaf5 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.fxc.hlsl
@@ -23,7 +23,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol_3 = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol_3 = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol_3;
 }
 
@@ -42,7 +42,7 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_2 = (S)0;
+      S tint_symbol_2 = (S)0;
       w[i] = tint_symbol_2;
     }
   }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index d9fedcc..454bdc5 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -35,7 +35,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  Inner tint_symbol_4 = {a_load_4((offset + 0u))};
   return tint_symbol_4;
 }
 
@@ -51,7 +51,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_5 = {a_load_2((offset + 0u))};
   return tint_symbol_5;
 }
 
@@ -71,10 +71,10 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const matrix<float16_t, 3, 4> l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_3 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (8u * uint(p_a_i_a_i_m_i_save)))) / 4;
   uint4 ubo_load_7 = a[scalar_offset_3 / 4];
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
index a1dad0b..fc10274 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -29,7 +29,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  Inner tint_symbol = {a_load_4((offset + 0u))};
   return tint_symbol;
 }
 
@@ -45,7 +45,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_1 = {a_load_2((offset + 0u))};
   return tint_symbol_1;
 }
 
@@ -62,10 +62,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_3 = a_load_1(768u);
-  const Inner l_a_3_a[4] = a_load_2(768u);
-  const Inner l_a_3_a_2 = a_load_3(896u);
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_3 = a_load_1(768u);
+  Inner l_a_3_a[4] = a_load_2(768u);
+  Inner l_a_3_a_2 = a_load_3(896u);
   const matrix<float16_t, 3, 4> l_a_3_a_2_m = a_load_4(896u);
   uint2 ubo_load_6 = a[56].zw;
   vector<float16_t, 2> ubo_load_6_xz = vector<float16_t, 2>(f16tof32(ubo_load_6 & 0xFFFF));
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_fn.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_fn.wgsl.expected.dxc.hlsl
index 23b5d4f..54382b9 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_fn.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_fn.wgsl.expected.dxc.hlsl
@@ -45,7 +45,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_private.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_private.wgsl.expected.dxc.hlsl
index 162ed4c..1ec24cd 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_private.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_private.wgsl.expected.dxc.hlsl
@@ -31,7 +31,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_storage.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_storage.wgsl.expected.dxc.hlsl
index 8db0909..639ff81 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_storage.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_storage.wgsl.expected.dxc.hlsl
@@ -52,7 +52,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_workgroup.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_workgroup.wgsl.expected.dxc.hlsl
index bc1f4b1..385ece3 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_workgroup.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_workgroup.wgsl.expected.dxc.hlsl
@@ -35,7 +35,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol_3 = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol_3 = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol_3;
 }
 
@@ -54,7 +54,7 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_2 = (S)0;
+      S tint_symbol_2 = (S)0;
       w[i] = tint_symbol_2;
     }
   }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index 0dff953..63e5329 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -23,7 +23,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  Inner tint_symbol_4 = {a_load_4((offset + 0u))};
   return tint_symbol_4;
 }
 
@@ -39,7 +39,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_5 = {a_load_2((offset + 0u))};
   return tint_symbol_5;
 }
 
@@ -59,10 +59,10 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const float3x4 l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_3 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (16u * uint(p_a_i_a_i_m_i_save)))) / 4;
   const float4 l_a_i_a_i_m_i = asfloat(a[scalar_offset_3 / 4]);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index 0dff953..63e5329 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -23,7 +23,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  Inner tint_symbol_4 = {a_load_4((offset + 0u))};
   return tint_symbol_4;
 }
 
@@ -39,7 +39,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_5 = {a_load_2((offset + 0u))};
   return tint_symbol_5;
 }
 
@@ -59,10 +59,10 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const float3x4 l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_3 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (16u * uint(p_a_i_a_i_m_i_save)))) / 4;
   const float4 l_a_i_a_i_m_i = asfloat(a[scalar_offset_3 / 4]);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
index 874d79f..9b0803d 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -17,7 +17,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  Inner tint_symbol = {a_load_4((offset + 0u))};
   return tint_symbol;
 }
 
@@ -33,7 +33,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_1 = {a_load_2((offset + 0u))};
   return tint_symbol_1;
 }
 
@@ -50,10 +50,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_3 = a_load_1(768u);
-  const Inner l_a_3_a[4] = a_load_2(768u);
-  const Inner l_a_3_a_2 = a_load_3(896u);
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_3 = a_load_1(768u);
+  Inner l_a_3_a[4] = a_load_2(768u);
+  Inner l_a_3_a_2 = a_load_3(896u);
   const float3x4 l_a_3_a_2_m = a_load_4(896u);
   const float4 l_a_3_a_2_m_1 = asfloat(a[57]);
   const float l_a_3_a_2_m_1_0 = asfloat(a[57].x);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
index 874d79f..9b0803d 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -17,7 +17,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  Inner tint_symbol = {a_load_4((offset + 0u))};
   return tint_symbol;
 }
 
@@ -33,7 +33,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_1 = {a_load_2((offset + 0u))};
   return tint_symbol_1;
 }
 
@@ -50,10 +50,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_3 = a_load_1(768u);
-  const Inner l_a_3_a[4] = a_load_2(768u);
-  const Inner l_a_3_a_2 = a_load_3(896u);
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_3 = a_load_1(768u);
+  Inner l_a_3_a[4] = a_load_2(768u);
+  Inner l_a_3_a_2 = a_load_3(896u);
   const float3x4 l_a_3_a_2_m = a_load_4(896u);
   const float4 l_a_3_a_2_m_1 = asfloat(a[57]);
   const float l_a_3_a_2_m_1_0 = asfloat(a[57].x);
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.dxc.hlsl
index 8cf85d5..48e439f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.dxc.hlsl
@@ -33,7 +33,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.fxc.hlsl
index 8cf85d5..48e439f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.fxc.hlsl
@@ -33,7 +33,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.dxc.hlsl
index 2c38277..bce1b49 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.dxc.hlsl
@@ -19,7 +19,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.fxc.hlsl
index 2c38277..bce1b49 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.fxc.hlsl
@@ -19,7 +19,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_storage.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_storage.wgsl.expected.dxc.hlsl
index adfe0f8..c0331a8 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_storage.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_storage.wgsl.expected.dxc.hlsl
@@ -40,7 +40,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_storage.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_storage.wgsl.expected.fxc.hlsl
index adfe0f8..c0331a8 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_storage.wgsl.expected.fxc.hlsl
@@ -40,7 +40,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.dxc.hlsl
index b5f3ca2..a320646 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.dxc.hlsl
@@ -23,7 +23,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol_3 = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol_3 = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol_3;
 }
 
@@ -42,7 +42,7 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_2 = (S)0;
+      S tint_symbol_2 = (S)0;
       w[i] = tint_symbol_2;
     }
   }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.fxc.hlsl
index b5f3ca2..a320646 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.fxc.hlsl
@@ -23,7 +23,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_3 = ((offset + 0u)) / 4;
   const uint scalar_offset_4 = ((offset + 64u)) / 4;
-  const S tint_symbol_3 = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
+  S tint_symbol_3 = {asint(u[scalar_offset_3 / 4][scalar_offset_3 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4])};
   return tint_symbol_3;
 }
 
@@ -42,7 +42,7 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_2 = (S)0;
+      S tint_symbol_2 = (S)0;
       w[i] = tint_symbol_2;
     }
   }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index e01c5de..4b73fd4 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -28,7 +28,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  Inner tint_symbol_4 = {a_load_4((offset + 0u))};
   return tint_symbol_4;
 }
 
@@ -44,7 +44,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_5 = {a_load_2((offset + 0u))};
   return tint_symbol_5;
 }
 
@@ -64,10 +64,10 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const matrix<float16_t, 4, 2> l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_4 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (4u * uint(p_a_i_a_i_m_i_save)))) / 4;
   uint ubo_load_4 = a[scalar_offset_4 / 4][scalar_offset_4 % 4];
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
index dec9a1e..a43b92f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -22,7 +22,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  Inner tint_symbol = {a_load_4((offset + 0u))};
   return tint_symbol;
 }
 
@@ -38,7 +38,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_1 = {a_load_2((offset + 0u))};
   return tint_symbol_1;
 }
 
@@ -55,10 +55,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_3 = a_load_1(768u);
-  const Inner l_a_3_a[4] = a_load_2(768u);
-  const Inner l_a_3_a_2 = a_load_3(896u);
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_3 = a_load_1(768u);
+  Inner l_a_3_a[4] = a_load_2(768u);
+  Inner l_a_3_a_2 = a_load_3(896u);
   const matrix<float16_t, 4, 2> l_a_3_a_2_m = a_load_4(896u);
   uint ubo_load_4 = a[56].y;
   const vector<float16_t, 2> l_a_3_a_2_m_1 = vector<float16_t, 2>(float16_t(f16tof32(ubo_load_4 & 0xFFFF)), float16_t(f16tof32(ubo_load_4 >> 16)));
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_fn.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_fn.wgsl.expected.dxc.hlsl
index 3a830e8..768ba22 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_fn.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_fn.wgsl.expected.dxc.hlsl
@@ -38,7 +38,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_private.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_private.wgsl.expected.dxc.hlsl
index cd14f34..645e41a 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_private.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_private.wgsl.expected.dxc.hlsl
@@ -24,7 +24,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_storage.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_storage.wgsl.expected.dxc.hlsl
index 7d41195..5d3df6a 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_storage.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_storage.wgsl.expected.dxc.hlsl
@@ -46,7 +46,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_workgroup.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_workgroup.wgsl.expected.dxc.hlsl
index e6c11d1..d68557c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_workgroup.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_workgroup.wgsl.expected.dxc.hlsl
@@ -28,7 +28,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol_3 = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol_3 = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 4u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol_3;
 }
 
@@ -47,7 +47,7 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_2 = (S)0;
+      S tint_symbol_2 = (S)0;
       w[i] = tint_symbol_2;
     }
   }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index 07e6442..0bcc831 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -28,7 +28,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  Inner tint_symbol_4 = {a_load_4((offset + 0u))};
   return tint_symbol_4;
 }
 
@@ -44,7 +44,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_5 = {a_load_2((offset + 0u))};
   return tint_symbol_5;
 }
 
@@ -64,10 +64,10 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const float4x2 l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_4 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (8u * uint(p_a_i_a_i_m_i_save)))) / 4;
   uint4 ubo_load_4 = a[scalar_offset_4 / 4];
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index 07e6442..0bcc831 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -28,7 +28,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  Inner tint_symbol_4 = {a_load_4((offset + 0u))};
   return tint_symbol_4;
 }
 
@@ -44,7 +44,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_5 = {a_load_2((offset + 0u))};
   return tint_symbol_5;
 }
 
@@ -64,10 +64,10 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const float4x2 l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_4 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (8u * uint(p_a_i_a_i_m_i_save)))) / 4;
   uint4 ubo_load_4 = a[scalar_offset_4 / 4];
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
index 69e9ca3..13eb36f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -22,7 +22,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  Inner tint_symbol = {a_load_4((offset + 0u))};
   return tint_symbol;
 }
 
@@ -38,7 +38,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_1 = {a_load_2((offset + 0u))};
   return tint_symbol_1;
 }
 
@@ -55,10 +55,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_3 = a_load_1(768u);
-  const Inner l_a_3_a[4] = a_load_2(768u);
-  const Inner l_a_3_a_2 = a_load_3(896u);
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_3 = a_load_1(768u);
+  Inner l_a_3_a[4] = a_load_2(768u);
+  Inner l_a_3_a_2 = a_load_3(896u);
   const float4x2 l_a_3_a_2_m = a_load_4(896u);
   const float2 l_a_3_a_2_m_1 = asfloat(a[56].zw);
   const float l_a_3_a_2_m_1_0 = asfloat(a[56].z);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
index 69e9ca3..13eb36f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -22,7 +22,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  Inner tint_symbol = {a_load_4((offset + 0u))};
   return tint_symbol;
 }
 
@@ -38,7 +38,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_1 = {a_load_2((offset + 0u))};
   return tint_symbol_1;
 }
 
@@ -55,10 +55,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_3 = a_load_1(768u);
-  const Inner l_a_3_a[4] = a_load_2(768u);
-  const Inner l_a_3_a_2 = a_load_3(896u);
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_3 = a_load_1(768u);
+  Inner l_a_3_a[4] = a_load_2(768u);
+  Inner l_a_3_a_2 = a_load_3(896u);
   const float4x2 l_a_3_a_2_m = a_load_4(896u);
   const float2 l_a_3_a_2_m_1 = asfloat(a[56].zw);
   const float l_a_3_a_2_m_1_0 = asfloat(a[56].z);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.dxc.hlsl
index 6dbf162..8f673d6 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.dxc.hlsl
@@ -38,7 +38,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.fxc.hlsl
index 6dbf162..8f673d6 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.fxc.hlsl
@@ -38,7 +38,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.dxc.hlsl
index 0f99d5f..8b092cc 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.dxc.hlsl
@@ -24,7 +24,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.fxc.hlsl
index 0f99d5f..8b092cc 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.fxc.hlsl
@@ -24,7 +24,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_storage.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_storage.wgsl.expected.dxc.hlsl
index 445c1d1..376ebfa 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_storage.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_storage.wgsl.expected.dxc.hlsl
@@ -46,7 +46,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_storage.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_storage.wgsl.expected.fxc.hlsl
index 445c1d1..376ebfa 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_storage.wgsl.expected.fxc.hlsl
@@ -46,7 +46,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.dxc.hlsl
index 93a5f6c..a2578c7 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.dxc.hlsl
@@ -28,7 +28,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol_3 = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol_3 = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol_3;
 }
 
@@ -47,7 +47,7 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_2 = (S)0;
+      S tint_symbol_2 = (S)0;
       w[i] = tint_symbol_2;
     }
   }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.fxc.hlsl
index 93a5f6c..a2578c7 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.fxc.hlsl
@@ -28,7 +28,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol_3 = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol_3 = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol_3;
 }
 
@@ -47,7 +47,7 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_2 = (S)0;
+      S tint_symbol_2 = (S)0;
       w[i] = tint_symbol_2;
     }
   }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index ada90ac..91836ae 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -40,7 +40,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  Inner tint_symbol_4 = {a_load_4((offset + 0u))};
   return tint_symbol_4;
 }
 
@@ -56,7 +56,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_5 = {a_load_2((offset + 0u))};
   return tint_symbol_5;
 }
 
@@ -76,10 +76,10 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const matrix<float16_t, 4, 3> l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_4 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (8u * uint(p_a_i_a_i_m_i_save)))) / 4;
   uint4 ubo_load_9 = a[scalar_offset_4 / 4];
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
index 1f92392..50f0441 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -34,7 +34,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  Inner tint_symbol = {a_load_4((offset + 0u))};
   return tint_symbol;
 }
 
@@ -50,7 +50,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_1 = {a_load_2((offset + 0u))};
   return tint_symbol_1;
 }
 
@@ -67,10 +67,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_3 = a_load_1(768u);
-  const Inner l_a_3_a[4] = a_load_2(768u);
-  const Inner l_a_3_a_2 = a_load_3(896u);
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_3 = a_load_1(768u);
+  Inner l_a_3_a[4] = a_load_2(768u);
+  Inner l_a_3_a_2 = a_load_3(896u);
   const matrix<float16_t, 4, 3> l_a_3_a_2_m = a_load_4(896u);
   uint2 ubo_load_8 = a[56].zw;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_fn.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_fn.wgsl.expected.dxc.hlsl
index b3f8cc8..df53117 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_fn.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_fn.wgsl.expected.dxc.hlsl
@@ -50,7 +50,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_private.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_private.wgsl.expected.dxc.hlsl
index f940db4..5e566f8 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_private.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_private.wgsl.expected.dxc.hlsl
@@ -36,7 +36,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_storage.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_storage.wgsl.expected.dxc.hlsl
index c57754d..36a85f0 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_storage.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_storage.wgsl.expected.dxc.hlsl
@@ -58,7 +58,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_workgroup.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_workgroup.wgsl.expected.dxc.hlsl
index 3456f8f..e4bd8dd 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_workgroup.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_workgroup.wgsl.expected.dxc.hlsl
@@ -40,7 +40,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol_3 = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol_3 = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol_3;
 }
 
@@ -59,7 +59,7 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_2 = (S)0;
+      S tint_symbol_2 = (S)0;
       w[i] = tint_symbol_2;
     }
   }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index b0a5c41..85c18a7 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -24,7 +24,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  Inner tint_symbol_4 = {a_load_4((offset + 0u))};
   return tint_symbol_4;
 }
 
@@ -40,7 +40,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_5 = {a_load_2((offset + 0u))};
   return tint_symbol_5;
 }
 
@@ -60,10 +60,10 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const float4x3 l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_4 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (16u * uint(p_a_i_a_i_m_i_save)))) / 4;
   const float3 l_a_i_a_i_m_i = asfloat(a[scalar_offset_4 / 4].xyz);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index b0a5c41..85c18a7 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -24,7 +24,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  Inner tint_symbol_4 = {a_load_4((offset + 0u))};
   return tint_symbol_4;
 }
 
@@ -40,7 +40,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_5 = {a_load_2((offset + 0u))};
   return tint_symbol_5;
 }
 
@@ -60,10 +60,10 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const float4x3 l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_4 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (16u * uint(p_a_i_a_i_m_i_save)))) / 4;
   const float3 l_a_i_a_i_m_i = asfloat(a[scalar_offset_4 / 4].xyz);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
index c5b65bd..7c7edd8 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -18,7 +18,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  Inner tint_symbol = {a_load_4((offset + 0u))};
   return tint_symbol;
 }
 
@@ -34,7 +34,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_1 = {a_load_2((offset + 0u))};
   return tint_symbol_1;
 }
 
@@ -51,10 +51,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_3 = a_load_1(768u);
-  const Inner l_a_3_a[4] = a_load_2(768u);
-  const Inner l_a_3_a_2 = a_load_3(896u);
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_3 = a_load_1(768u);
+  Inner l_a_3_a[4] = a_load_2(768u);
+  Inner l_a_3_a_2 = a_load_3(896u);
   const float4x3 l_a_3_a_2_m = a_load_4(896u);
   const float3 l_a_3_a_2_m_1 = asfloat(a[57].xyz);
   const float l_a_3_a_2_m_1_0 = asfloat(a[57].x);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
index c5b65bd..7c7edd8 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -18,7 +18,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  Inner tint_symbol = {a_load_4((offset + 0u))};
   return tint_symbol;
 }
 
@@ -34,7 +34,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_1 = {a_load_2((offset + 0u))};
   return tint_symbol_1;
 }
 
@@ -51,10 +51,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_3 = a_load_1(768u);
-  const Inner l_a_3_a[4] = a_load_2(768u);
-  const Inner l_a_3_a_2 = a_load_3(896u);
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_3 = a_load_1(768u);
+  Inner l_a_3_a[4] = a_load_2(768u);
+  Inner l_a_3_a_2 = a_load_3(896u);
   const float4x3 l_a_3_a_2_m = a_load_4(896u);
   const float3 l_a_3_a_2_m_1 = asfloat(a[57].xyz);
   const float l_a_3_a_2_m_1_0 = asfloat(a[57].x);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.dxc.hlsl
index 6ad26ed..11107c7 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.dxc.hlsl
@@ -34,7 +34,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 128u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.fxc.hlsl
index 6ad26ed..11107c7 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.fxc.hlsl
@@ -34,7 +34,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 128u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.dxc.hlsl
index e27d6d7..417622c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.dxc.hlsl
@@ -20,7 +20,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 128u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.fxc.hlsl
index e27d6d7..417622c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.fxc.hlsl
@@ -20,7 +20,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 128u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_storage.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_storage.wgsl.expected.dxc.hlsl
index 9258d54..dcc9c17 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_storage.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_storage.wgsl.expected.dxc.hlsl
@@ -42,7 +42,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 128u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_storage.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_storage.wgsl.expected.fxc.hlsl
index 9258d54..dcc9c17 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_storage.wgsl.expected.fxc.hlsl
@@ -42,7 +42,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 128u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.dxc.hlsl
index d36890e..c1d7480 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.dxc.hlsl
@@ -24,7 +24,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 128u)) / 4;
-  const S tint_symbol_3 = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol_3 = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol_3;
 }
 
@@ -43,7 +43,7 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_2 = (S)0;
+      S tint_symbol_2 = (S)0;
       w[i] = tint_symbol_2;
     }
   }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.fxc.hlsl
index d36890e..c1d7480 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.fxc.hlsl
@@ -24,7 +24,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 128u)) / 4;
-  const S tint_symbol_3 = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol_3 = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol_3;
 }
 
@@ -43,7 +43,7 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_2 = (S)0;
+      S tint_symbol_2 = (S)0;
       w[i] = tint_symbol_2;
     }
   }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index b2d959f..aa29abe 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -40,7 +40,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  Inner tint_symbol_4 = {a_load_4((offset + 0u))};
   return tint_symbol_4;
 }
 
@@ -56,7 +56,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_5 = {a_load_2((offset + 0u))};
   return tint_symbol_5;
 }
 
@@ -76,10 +76,10 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const matrix<float16_t, 4, 4> l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_4 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (8u * uint(p_a_i_a_i_m_i_save)))) / 4;
   uint4 ubo_load_9 = a[scalar_offset_4 / 4];
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
index 31f4477..61f4529 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -34,7 +34,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  Inner tint_symbol = {a_load_4((offset + 0u))};
   return tint_symbol;
 }
 
@@ -50,7 +50,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_1 = {a_load_2((offset + 0u))};
   return tint_symbol_1;
 }
 
@@ -67,10 +67,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_3 = a_load_1(768u);
-  const Inner l_a_3_a[4] = a_load_2(768u);
-  const Inner l_a_3_a_2 = a_load_3(896u);
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_3 = a_load_1(768u);
+  Inner l_a_3_a[4] = a_load_2(768u);
+  Inner l_a_3_a_2 = a_load_3(896u);
   const matrix<float16_t, 4, 4> l_a_3_a_2_m = a_load_4(896u);
   uint2 ubo_load_8 = a[56].zw;
   vector<float16_t, 2> ubo_load_8_xz = vector<float16_t, 2>(f16tof32(ubo_load_8 & 0xFFFF));
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_fn.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_fn.wgsl.expected.dxc.hlsl
index a686c80..0b134fa 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_fn.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_fn.wgsl.expected.dxc.hlsl
@@ -50,7 +50,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_private.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_private.wgsl.expected.dxc.hlsl
index a047343..47fb0cc 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_private.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_private.wgsl.expected.dxc.hlsl
@@ -36,7 +36,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_storage.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_storage.wgsl.expected.dxc.hlsl
index a7bc3ad..367df4e 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_storage.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_storage.wgsl.expected.dxc.hlsl
@@ -58,7 +58,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_workgroup.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_workgroup.wgsl.expected.dxc.hlsl
index ab3f1b1..938545b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_workgroup.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_workgroup.wgsl.expected.dxc.hlsl
@@ -40,7 +40,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 64u)) / 4;
-  const S tint_symbol_3 = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol_3 = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 8u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol_3;
 }
 
@@ -59,7 +59,7 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_2 = (S)0;
+      S tint_symbol_2 = (S)0;
       w[i] = tint_symbol_2;
     }
   }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
index 6a87623..8b4059f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -24,7 +24,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  Inner tint_symbol_4 = {a_load_4((offset + 0u))};
   return tint_symbol_4;
 }
 
@@ -40,7 +40,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_5 = {a_load_2((offset + 0u))};
   return tint_symbol_5;
 }
 
@@ -60,10 +60,10 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const float4x4 l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_4 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (16u * uint(p_a_i_a_i_m_i_save)))) / 4;
   const float4 l_a_i_a_i_m_i = asfloat(a[scalar_offset_4 / 4]);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
index 6a87623..8b4059f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -24,7 +24,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol_4 = {a_load_4((offset + 0u))};
+  Inner tint_symbol_4 = {a_load_4((offset + 0u))};
   return tint_symbol_4;
 }
 
@@ -40,7 +40,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_5 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_5 = {a_load_2((offset + 0u))};
   return tint_symbol_5;
 }
 
@@ -60,10 +60,10 @@
   const int p_a_i_save = i();
   const int p_a_i_a_i_save = i();
   const int p_a_i_a_i_m_i_save = i();
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
-  const Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_i = a_load_1((256u * uint(p_a_i_save)));
+  Inner l_a_i_a[4] = a_load_2((256u * uint(p_a_i_save)));
+  Inner l_a_i_a_i = a_load_3(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const float4x4 l_a_i_a_i_m = a_load_4(((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))));
   const uint scalar_offset_4 = ((((256u * uint(p_a_i_save)) + (64u * uint(p_a_i_a_i_save))) + (16u * uint(p_a_i_a_i_m_i_save)))) / 4;
   const float4 l_a_i_a_i_m_i = asfloat(a[scalar_offset_4 / 4]);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
index dd8fbf8..7aeb8cd 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.dxc.hlsl
@@ -18,7 +18,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  Inner tint_symbol = {a_load_4((offset + 0u))};
   return tint_symbol;
 }
 
@@ -34,7 +34,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_1 = {a_load_2((offset + 0u))};
   return tint_symbol_1;
 }
 
@@ -51,10 +51,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_3 = a_load_1(768u);
-  const Inner l_a_3_a[4] = a_load_2(768u);
-  const Inner l_a_3_a_2 = a_load_3(896u);
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_3 = a_load_1(768u);
+  Inner l_a_3_a[4] = a_load_2(768u);
+  Inner l_a_3_a_2 = a_load_3(896u);
   const float4x4 l_a_3_a_2_m = a_load_4(896u);
   const float4 l_a_3_a_2_m_1 = asfloat(a[57]);
   const float l_a_3_a_2_m_1_0 = asfloat(a[57].x);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
index dd8fbf8..7aeb8cd 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.fxc.hlsl
@@ -18,7 +18,7 @@
 }
 
 Inner a_load_3(uint offset) {
-  const Inner tint_symbol = {a_load_4((offset + 0u))};
+  Inner tint_symbol = {a_load_4((offset + 0u))};
   return tint_symbol;
 }
 
@@ -34,7 +34,7 @@
 }
 
 Outer a_load_1(uint offset) {
-  const Outer tint_symbol_1 = {a_load_2((offset + 0u))};
+  Outer tint_symbol_1 = {a_load_2((offset + 0u))};
   return tint_symbol_1;
 }
 
@@ -51,10 +51,10 @@
 
 [numthreads(1, 1, 1)]
 void f() {
-  const Outer l_a[4] = a_load(0u);
-  const Outer l_a_3 = a_load_1(768u);
-  const Inner l_a_3_a[4] = a_load_2(768u);
-  const Inner l_a_3_a_2 = a_load_3(896u);
+  Outer l_a[4] = a_load(0u);
+  Outer l_a_3 = a_load_1(768u);
+  Inner l_a_3_a[4] = a_load_2(768u);
+  Inner l_a_3_a_2 = a_load_3(896u);
   const float4x4 l_a_3_a_2_m = a_load_4(896u);
   const float4 l_a_3_a_2_m_1 = asfloat(a[57]);
   const float l_a_3_a_2_m_1_0 = asfloat(a[57].x);
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.dxc.hlsl
index 4b67bbe..8ea7b41 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.dxc.hlsl
@@ -34,7 +34,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 128u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.fxc.hlsl
index 4b67bbe..8ea7b41 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.fxc.hlsl
@@ -34,7 +34,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 128u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.dxc.hlsl
index 140df37..d6f711b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.dxc.hlsl
@@ -20,7 +20,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 128u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.fxc.hlsl
index 140df37..d6f711b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.fxc.hlsl
@@ -20,7 +20,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 128u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_storage.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_storage.wgsl.expected.dxc.hlsl
index cc6939e..5cddf88 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_storage.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_storage.wgsl.expected.dxc.hlsl
@@ -42,7 +42,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 128u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_storage.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_storage.wgsl.expected.fxc.hlsl
index cc6939e..5cddf88 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_storage.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_storage.wgsl.expected.fxc.hlsl
@@ -42,7 +42,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 128u)) / 4;
-  const S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol;
 }
 
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.dxc.hlsl
index 9ebc190..00a3dec2 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.dxc.hlsl
@@ -24,7 +24,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 128u)) / 4;
-  const S tint_symbol_3 = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol_3 = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol_3;
 }
 
@@ -43,7 +43,7 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_2 = (S)0;
+      S tint_symbol_2 = (S)0;
       w[i] = tint_symbol_2;
     }
   }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.fxc.hlsl
index 9ebc190..00a3dec2 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.fxc.hlsl
@@ -24,7 +24,7 @@
 S u_load_1(uint offset) {
   const uint scalar_offset_4 = ((offset + 0u)) / 4;
   const uint scalar_offset_5 = ((offset + 128u)) / 4;
-  const S tint_symbol_3 = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
+  S tint_symbol_3 = {asint(u[scalar_offset_4 / 4][scalar_offset_4 % 4]), u_load_3((offset + 16u)), asint(u[scalar_offset_5 / 4][scalar_offset_5 % 4])};
   return tint_symbol_3;
 }
 
@@ -43,7 +43,7 @@
   {
     for(uint idx = local_invocation_index; (idx < 4u); idx = (idx + 1u)) {
       const uint i = idx;
-      const S tint_symbol_2 = (S)0;
+      S tint_symbol_2 = (S)0;
       w[i] = tint_symbol_2;
     }
   }
diff --git a/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.dxc.hlsl
index 0c0b7d7..3ebb6d7 100644
--- a/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.dxc.hlsl
@@ -33,17 +33,17 @@
   uint2 ubo_load_4 = ((scalar_offset_2 & 2) ? ubo_load_5.zw : ubo_load_5.xy);
   vector<float16_t, 2> ubo_load_4_xz = vector<float16_t, 2>(f16tof32(ubo_load_4 & 0xFFFF));
   float16_t ubo_load_4_y = f16tof32(ubo_load_4[0] >> 16);
-  const Inner tint_symbol = {float16_t(f16tof32(((u[scalar_offset_index / 4][scalar_offset_index % 4] >> (scalar_offset_bytes % 4 == 0 ? 0 : 16)) & 0xFFFF))), vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]), u_load_4((offset + 16u))};
+  Inner tint_symbol = {float16_t(f16tof32(((u[scalar_offset_index / 4][scalar_offset_index % 4] >> (scalar_offset_bytes % 4 == 0 ? 0 : 16)) & 0xFFFF))), vector<float16_t, 3>(ubo_load_4_xz[0], ubo_load_4_y, ubo_load_4_xz[1]), u_load_4((offset + 16u))};
   return tint_symbol;
 }
 
 S u_load(uint offset) {
-  const S tint_symbol_1 = {u_load_1((offset + 0u))};
+  S tint_symbol_1 = {u_load_1((offset + 0u))};
   return tint_symbol_1;
 }
 
 [numthreads(1, 1, 1)]
 void main() {
-  const S x = u_load(0u);
+  S x = u_load(0u);
   return;
 }
diff --git a/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.dxc.hlsl b/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.dxc.hlsl
index bc6f907..0dbe030 100644
--- a/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.dxc.hlsl
@@ -20,17 +20,17 @@
 Inner u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 16u)) / 4;
-  const Inner tint_symbol = {asfloat(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), asfloat(u[scalar_offset_3 / 4].xyz), u_load_4((offset + 32u))};
+  Inner tint_symbol = {asfloat(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), asfloat(u[scalar_offset_3 / 4].xyz), u_load_4((offset + 32u))};
   return tint_symbol;
 }
 
 S u_load(uint offset) {
-  const S tint_symbol_1 = {u_load_1((offset + 0u))};
+  S tint_symbol_1 = {u_load_1((offset + 0u))};
   return tint_symbol_1;
 }
 
 [numthreads(1, 1, 1)]
 void main() {
-  const S x = u_load(0u);
+  S x = u_load(0u);
   return;
 }
diff --git a/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.fxc.hlsl b/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.fxc.hlsl
index bc6f907..0dbe030 100644
--- a/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.fxc.hlsl
@@ -20,17 +20,17 @@
 Inner u_load_1(uint offset) {
   const uint scalar_offset_2 = ((offset + 0u)) / 4;
   const uint scalar_offset_3 = ((offset + 16u)) / 4;
-  const Inner tint_symbol = {asfloat(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), asfloat(u[scalar_offset_3 / 4].xyz), u_load_4((offset + 32u))};
+  Inner tint_symbol = {asfloat(u[scalar_offset_2 / 4][scalar_offset_2 % 4]), asfloat(u[scalar_offset_3 / 4].xyz), u_load_4((offset + 32u))};
   return tint_symbol;
 }
 
 S u_load(uint offset) {
-  const S tint_symbol_1 = {u_load_1((offset + 0u))};
+  S tint_symbol_1 = {u_load_1((offset + 0u))};
   return tint_symbol_1;
 }
 
 [numthreads(1, 1, 1)]
 void main() {
-  const S x = u_load(0u);
+  S x = u_load(0u);
   return;
 }
diff --git a/test/tint/bug/tint/1739.wgsl.expected.dxc.hlsl b/test/tint/bug/tint/1739.wgsl.expected.dxc.hlsl
index 98c418a..801f448 100644
--- a/test/tint/bug/tint/1739.wgsl.expected.dxc.hlsl
+++ b/test/tint/bug/tint/1739.wgsl.expected.dxc.hlsl
@@ -88,7 +88,7 @@
 ExternalTextureParams ext_tex_params_load(uint offset) {
   const uint scalar_offset_17 = ((offset + 0u)) / 4;
   const uint scalar_offset_18 = ((offset + 4u)) / 4;
-  const ExternalTextureParams tint_symbol_1 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
+  ExternalTextureParams tint_symbol_1 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
   return tint_symbol_1;
 }
 
diff --git a/test/tint/bug/tint/1739.wgsl.expected.fxc.hlsl b/test/tint/bug/tint/1739.wgsl.expected.fxc.hlsl
index 98c418a..801f448 100644
--- a/test/tint/bug/tint/1739.wgsl.expected.fxc.hlsl
+++ b/test/tint/bug/tint/1739.wgsl.expected.fxc.hlsl
@@ -88,7 +88,7 @@
 ExternalTextureParams ext_tex_params_load(uint offset) {
   const uint scalar_offset_17 = ((offset + 0u)) / 4;
   const uint scalar_offset_18 = ((offset + 4u)) / 4;
-  const ExternalTextureParams tint_symbol_1 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
+  ExternalTextureParams tint_symbol_1 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
   return tint_symbol_1;
 }
 
diff --git a/test/tint/bug/tint/2059.wgsl b/test/tint/bug/tint/2059.wgsl
new file mode 100644
index 0000000..cad0ae2
--- /dev/null
+++ b/test/tint/bug/tint/2059.wgsl
@@ -0,0 +1,78 @@
+alias Mat = mat3x3<f32>;
+
+// Struct of matrix
+struct S { m : Mat }
+
+// Struct of array of matrix
+struct S2 { m : array<Mat, 1> }
+
+// Struct of struct of matrix
+struct S3 { s : S }
+
+// Struct of array of struct of matrix
+struct S4 { s : array<S, 1> }
+
+@group(0) @binding(0) var<storage, read_write> buffer0 : Mat;
+@group(0) @binding(1) var<storage, read_write> buffer1 : S;
+@group(0) @binding(2) var<storage, read_write> buffer2 : S2;
+@group(0) @binding(3) var<storage, read_write> buffer3 : S3;
+@group(0) @binding(4) var<storage, read_write> buffer4 : S4;
+@group(0) @binding(5) var<storage, read_write> buffer5 : array<Mat, 1>;
+@group(0) @binding(6) var<storage, read_write> buffer6 : array<S, 1>;
+@group(0) @binding(7) var<storage, read_write> buffer7 : array<S2, 1>;
+
+@compute @workgroup_size(1)
+fn main() {
+  var m : Mat;
+  for (var c = 0u; c < 3; c++) {
+    m[c] = vec3(f32(c*3 + 1), f32(c*3 + 2), f32(c*3 + 3));
+  }
+  
+  // copy of matrix
+  {
+    let a = m;
+    buffer0 = a;
+  }
+
+  // struct of matrix
+  {
+    let a = S(m);
+    buffer1 = a; 
+  }
+
+  // struct of array of matrix
+  {
+    let a = S2(array<Mat, 1>(m));
+    buffer2 = a;
+  }
+  
+  // struct of struct of matrix
+  {
+    let a = S3(S(m));
+    buffer3 = a;
+  }
+
+  // struct of array of struct of matrix
+  {
+    let a = S4(array<S, 1>(S(m)));
+    buffer4 = a;
+  }
+
+  // array of matrix
+  {
+    let a = array<Mat, 1>(m);
+    buffer5 = a;
+  }
+
+  // array of struct of matrix
+  {
+    let a = array<S, 1>(S(m));
+    buffer6 = a;
+  }
+
+  // array of struct of array of matrix
+  {
+    let a = array<S2, 1>(S2(array<Mat, 1>(m)));
+    buffer7 = a;
+  }
+}
diff --git a/test/tint/bug/tint/2059.wgsl.expected.dxc.hlsl b/test/tint/bug/tint/2059.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..0c85f3a
--- /dev/null
+++ b/test/tint/bug/tint/2059.wgsl.expected.dxc.hlsl
@@ -0,0 +1,213 @@
+void set_vector_float3x3(inout float3x3 mat, int col, float3 val) {
+  switch (col) {
+    case 0: mat[0] = val; break;
+    case 1: mat[1] = val; break;
+    case 2: mat[2] = val; break;
+  }
+}
+
+struct S {
+  float3x3 m;
+};
+struct S2 {
+  float3x3 m[1];
+};
+struct S3 {
+  S s;
+};
+struct S4 {
+  S s[1];
+};
+
+RWByteAddressBuffer buffer0 : register(u0);
+RWByteAddressBuffer buffer1 : register(u1);
+RWByteAddressBuffer buffer2 : register(u2);
+RWByteAddressBuffer buffer3 : register(u3);
+RWByteAddressBuffer buffer4 : register(u4);
+RWByteAddressBuffer buffer5 : register(u5);
+RWByteAddressBuffer buffer6 : register(u6);
+RWByteAddressBuffer buffer7 : register(u7);
+
+void buffer0_store(uint offset, float3x3 value) {
+  buffer0.Store3((offset + 0u), asuint(value[0u]));
+  buffer0.Store3((offset + 16u), asuint(value[1u]));
+  buffer0.Store3((offset + 32u), asuint(value[2u]));
+}
+
+void buffer1_store_1(uint offset, float3x3 value) {
+  buffer1.Store3((offset + 0u), asuint(value[0u]));
+  buffer1.Store3((offset + 16u), asuint(value[1u]));
+  buffer1.Store3((offset + 32u), asuint(value[2u]));
+}
+
+void buffer1_store(uint offset, S value) {
+  buffer1_store_1((offset + 0u), value.m);
+}
+
+void buffer2_store_2(uint offset, float3x3 value) {
+  buffer2.Store3((offset + 0u), asuint(value[0u]));
+  buffer2.Store3((offset + 16u), asuint(value[1u]));
+  buffer2.Store3((offset + 32u), asuint(value[2u]));
+}
+
+void buffer2_store_1(uint offset, float3x3 value[1]) {
+  float3x3 array_1[1] = value;
+  {
+    for(uint i = 0u; (i < 1u); i = (i + 1u)) {
+      buffer2_store_2((offset + (i * 48u)), array_1[i]);
+    }
+  }
+}
+
+void buffer2_store(uint offset, S2 value) {
+  buffer2_store_1((offset + 0u), value.m);
+}
+
+void buffer3_store_2(uint offset, float3x3 value) {
+  buffer3.Store3((offset + 0u), asuint(value[0u]));
+  buffer3.Store3((offset + 16u), asuint(value[1u]));
+  buffer3.Store3((offset + 32u), asuint(value[2u]));
+}
+
+void buffer3_store_1(uint offset, S value) {
+  buffer3_store_2((offset + 0u), value.m);
+}
+
+void buffer3_store(uint offset, S3 value) {
+  buffer3_store_1((offset + 0u), value.s);
+}
+
+void buffer4_store_3(uint offset, float3x3 value) {
+  buffer4.Store3((offset + 0u), asuint(value[0u]));
+  buffer4.Store3((offset + 16u), asuint(value[1u]));
+  buffer4.Store3((offset + 32u), asuint(value[2u]));
+}
+
+void buffer4_store_2(uint offset, S value) {
+  buffer4_store_3((offset + 0u), value.m);
+}
+
+void buffer4_store_1(uint offset, S value[1]) {
+  S array_2[1] = value;
+  {
+    for(uint i_1 = 0u; (i_1 < 1u); i_1 = (i_1 + 1u)) {
+      buffer4_store_2((offset + (i_1 * 48u)), array_2[i_1]);
+    }
+  }
+}
+
+void buffer4_store(uint offset, S4 value) {
+  buffer4_store_1((offset + 0u), value.s);
+}
+
+void buffer5_store_1(uint offset, float3x3 value) {
+  buffer5.Store3((offset + 0u), asuint(value[0u]));
+  buffer5.Store3((offset + 16u), asuint(value[1u]));
+  buffer5.Store3((offset + 32u), asuint(value[2u]));
+}
+
+void buffer5_store(uint offset, float3x3 value[1]) {
+  float3x3 array_3[1] = value;
+  {
+    for(uint i_2 = 0u; (i_2 < 1u); i_2 = (i_2 + 1u)) {
+      buffer5_store_1((offset + (i_2 * 48u)), array_3[i_2]);
+    }
+  }
+}
+
+void buffer6_store_2(uint offset, float3x3 value) {
+  buffer6.Store3((offset + 0u), asuint(value[0u]));
+  buffer6.Store3((offset + 16u), asuint(value[1u]));
+  buffer6.Store3((offset + 32u), asuint(value[2u]));
+}
+
+void buffer6_store_1(uint offset, S value) {
+  buffer6_store_2((offset + 0u), value.m);
+}
+
+void buffer6_store(uint offset, S value[1]) {
+  S array_4[1] = value;
+  {
+    for(uint i_3 = 0u; (i_3 < 1u); i_3 = (i_3 + 1u)) {
+      buffer6_store_1((offset + (i_3 * 48u)), array_4[i_3]);
+    }
+  }
+}
+
+void buffer7_store_3(uint offset, float3x3 value) {
+  buffer7.Store3((offset + 0u), asuint(value[0u]));
+  buffer7.Store3((offset + 16u), asuint(value[1u]));
+  buffer7.Store3((offset + 32u), asuint(value[2u]));
+}
+
+void buffer7_store_2(uint offset, float3x3 value[1]) {
+  float3x3 array_6[1] = value;
+  {
+    for(uint i_4 = 0u; (i_4 < 1u); i_4 = (i_4 + 1u)) {
+      buffer7_store_3((offset + (i_4 * 48u)), array_6[i_4]);
+    }
+  }
+}
+
+void buffer7_store_1(uint offset, S2 value) {
+  buffer7_store_2((offset + 0u), value.m);
+}
+
+void buffer7_store(uint offset, S2 value[1]) {
+  S2 array_5[1] = value;
+  {
+    for(uint i_5 = 0u; (i_5 < 1u); i_5 = (i_5 + 1u)) {
+      buffer7_store_1((offset + (i_5 * 48u)), array_5[i_5]);
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float3x3 m = float3x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+  {
+    for(uint c = 0u; (c < 3u); c = (c + 1u)) {
+      set_vector_float3x3(m, c, float3(float(((c * 3u) + 1u)), float(((c * 3u) + 2u)), float(((c * 3u) + 3u))));
+    }
+  }
+  {
+    const float3x3 a = m;
+    buffer0_store(0u, a);
+  }
+  {
+    S a = {m};
+    buffer1_store(0u, a);
+  }
+  {
+    float3x3 tint_symbol[1] = {m};
+    S2 a = {tint_symbol};
+    buffer2_store(0u, a);
+  }
+  {
+    S tint_symbol_1 = {m};
+    S3 a = {tint_symbol_1};
+    buffer3_store(0u, a);
+  }
+  {
+    S tint_symbol_2 = {m};
+    S tint_symbol_3[1] = {tint_symbol_2};
+    S4 a = {tint_symbol_3};
+    buffer4_store(0u, a);
+  }
+  {
+    float3x3 a[1] = {m};
+    buffer5_store(0u, a);
+  }
+  {
+    S tint_symbol_4 = {m};
+    S a[1] = {tint_symbol_4};
+    buffer6_store(0u, a);
+  }
+  {
+    float3x3 tint_symbol_5[1] = {m};
+    S2 tint_symbol_6 = {tint_symbol_5};
+    S2 a[1] = {tint_symbol_6};
+    buffer7_store(0u, a);
+  }
+  return;
+}
diff --git a/test/tint/bug/tint/2059.wgsl.expected.fxc.hlsl b/test/tint/bug/tint/2059.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..0c85f3a
--- /dev/null
+++ b/test/tint/bug/tint/2059.wgsl.expected.fxc.hlsl
@@ -0,0 +1,213 @@
+void set_vector_float3x3(inout float3x3 mat, int col, float3 val) {
+  switch (col) {
+    case 0: mat[0] = val; break;
+    case 1: mat[1] = val; break;
+    case 2: mat[2] = val; break;
+  }
+}
+
+struct S {
+  float3x3 m;
+};
+struct S2 {
+  float3x3 m[1];
+};
+struct S3 {
+  S s;
+};
+struct S4 {
+  S s[1];
+};
+
+RWByteAddressBuffer buffer0 : register(u0);
+RWByteAddressBuffer buffer1 : register(u1);
+RWByteAddressBuffer buffer2 : register(u2);
+RWByteAddressBuffer buffer3 : register(u3);
+RWByteAddressBuffer buffer4 : register(u4);
+RWByteAddressBuffer buffer5 : register(u5);
+RWByteAddressBuffer buffer6 : register(u6);
+RWByteAddressBuffer buffer7 : register(u7);
+
+void buffer0_store(uint offset, float3x3 value) {
+  buffer0.Store3((offset + 0u), asuint(value[0u]));
+  buffer0.Store3((offset + 16u), asuint(value[1u]));
+  buffer0.Store3((offset + 32u), asuint(value[2u]));
+}
+
+void buffer1_store_1(uint offset, float3x3 value) {
+  buffer1.Store3((offset + 0u), asuint(value[0u]));
+  buffer1.Store3((offset + 16u), asuint(value[1u]));
+  buffer1.Store3((offset + 32u), asuint(value[2u]));
+}
+
+void buffer1_store(uint offset, S value) {
+  buffer1_store_1((offset + 0u), value.m);
+}
+
+void buffer2_store_2(uint offset, float3x3 value) {
+  buffer2.Store3((offset + 0u), asuint(value[0u]));
+  buffer2.Store3((offset + 16u), asuint(value[1u]));
+  buffer2.Store3((offset + 32u), asuint(value[2u]));
+}
+
+void buffer2_store_1(uint offset, float3x3 value[1]) {
+  float3x3 array_1[1] = value;
+  {
+    for(uint i = 0u; (i < 1u); i = (i + 1u)) {
+      buffer2_store_2((offset + (i * 48u)), array_1[i]);
+    }
+  }
+}
+
+void buffer2_store(uint offset, S2 value) {
+  buffer2_store_1((offset + 0u), value.m);
+}
+
+void buffer3_store_2(uint offset, float3x3 value) {
+  buffer3.Store3((offset + 0u), asuint(value[0u]));
+  buffer3.Store3((offset + 16u), asuint(value[1u]));
+  buffer3.Store3((offset + 32u), asuint(value[2u]));
+}
+
+void buffer3_store_1(uint offset, S value) {
+  buffer3_store_2((offset + 0u), value.m);
+}
+
+void buffer3_store(uint offset, S3 value) {
+  buffer3_store_1((offset + 0u), value.s);
+}
+
+void buffer4_store_3(uint offset, float3x3 value) {
+  buffer4.Store3((offset + 0u), asuint(value[0u]));
+  buffer4.Store3((offset + 16u), asuint(value[1u]));
+  buffer4.Store3((offset + 32u), asuint(value[2u]));
+}
+
+void buffer4_store_2(uint offset, S value) {
+  buffer4_store_3((offset + 0u), value.m);
+}
+
+void buffer4_store_1(uint offset, S value[1]) {
+  S array_2[1] = value;
+  {
+    for(uint i_1 = 0u; (i_1 < 1u); i_1 = (i_1 + 1u)) {
+      buffer4_store_2((offset + (i_1 * 48u)), array_2[i_1]);
+    }
+  }
+}
+
+void buffer4_store(uint offset, S4 value) {
+  buffer4_store_1((offset + 0u), value.s);
+}
+
+void buffer5_store_1(uint offset, float3x3 value) {
+  buffer5.Store3((offset + 0u), asuint(value[0u]));
+  buffer5.Store3((offset + 16u), asuint(value[1u]));
+  buffer5.Store3((offset + 32u), asuint(value[2u]));
+}
+
+void buffer5_store(uint offset, float3x3 value[1]) {
+  float3x3 array_3[1] = value;
+  {
+    for(uint i_2 = 0u; (i_2 < 1u); i_2 = (i_2 + 1u)) {
+      buffer5_store_1((offset + (i_2 * 48u)), array_3[i_2]);
+    }
+  }
+}
+
+void buffer6_store_2(uint offset, float3x3 value) {
+  buffer6.Store3((offset + 0u), asuint(value[0u]));
+  buffer6.Store3((offset + 16u), asuint(value[1u]));
+  buffer6.Store3((offset + 32u), asuint(value[2u]));
+}
+
+void buffer6_store_1(uint offset, S value) {
+  buffer6_store_2((offset + 0u), value.m);
+}
+
+void buffer6_store(uint offset, S value[1]) {
+  S array_4[1] = value;
+  {
+    for(uint i_3 = 0u; (i_3 < 1u); i_3 = (i_3 + 1u)) {
+      buffer6_store_1((offset + (i_3 * 48u)), array_4[i_3]);
+    }
+  }
+}
+
+void buffer7_store_3(uint offset, float3x3 value) {
+  buffer7.Store3((offset + 0u), asuint(value[0u]));
+  buffer7.Store3((offset + 16u), asuint(value[1u]));
+  buffer7.Store3((offset + 32u), asuint(value[2u]));
+}
+
+void buffer7_store_2(uint offset, float3x3 value[1]) {
+  float3x3 array_6[1] = value;
+  {
+    for(uint i_4 = 0u; (i_4 < 1u); i_4 = (i_4 + 1u)) {
+      buffer7_store_3((offset + (i_4 * 48u)), array_6[i_4]);
+    }
+  }
+}
+
+void buffer7_store_1(uint offset, S2 value) {
+  buffer7_store_2((offset + 0u), value.m);
+}
+
+void buffer7_store(uint offset, S2 value[1]) {
+  S2 array_5[1] = value;
+  {
+    for(uint i_5 = 0u; (i_5 < 1u); i_5 = (i_5 + 1u)) {
+      buffer7_store_1((offset + (i_5 * 48u)), array_5[i_5]);
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float3x3 m = float3x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+  {
+    for(uint c = 0u; (c < 3u); c = (c + 1u)) {
+      set_vector_float3x3(m, c, float3(float(((c * 3u) + 1u)), float(((c * 3u) + 2u)), float(((c * 3u) + 3u))));
+    }
+  }
+  {
+    const float3x3 a = m;
+    buffer0_store(0u, a);
+  }
+  {
+    S a = {m};
+    buffer1_store(0u, a);
+  }
+  {
+    float3x3 tint_symbol[1] = {m};
+    S2 a = {tint_symbol};
+    buffer2_store(0u, a);
+  }
+  {
+    S tint_symbol_1 = {m};
+    S3 a = {tint_symbol_1};
+    buffer3_store(0u, a);
+  }
+  {
+    S tint_symbol_2 = {m};
+    S tint_symbol_3[1] = {tint_symbol_2};
+    S4 a = {tint_symbol_3};
+    buffer4_store(0u, a);
+  }
+  {
+    float3x3 a[1] = {m};
+    buffer5_store(0u, a);
+  }
+  {
+    S tint_symbol_4 = {m};
+    S a[1] = {tint_symbol_4};
+    buffer6_store(0u, a);
+  }
+  {
+    float3x3 tint_symbol_5[1] = {m};
+    S2 tint_symbol_6 = {tint_symbol_5};
+    S2 a[1] = {tint_symbol_6};
+    buffer7_store(0u, a);
+  }
+  return;
+}
diff --git a/test/tint/bug/tint/2059.wgsl.expected.glsl b/test/tint/bug/tint/2059.wgsl.expected.glsl
new file mode 100644
index 0000000..6a99d71
--- /dev/null
+++ b/test/tint/bug/tint/2059.wgsl.expected.glsl
@@ -0,0 +1,240 @@
+#version 310 es
+
+struct S {
+  mat3 m;
+};
+
+struct S2 {
+  mat3 m[1];
+};
+
+struct S3 {
+  S s;
+};
+
+struct S4 {
+  S s[1];
+};
+
+layout(binding = 0, std430) buffer buffer0_block_ssbo {
+  mat3 inner;
+} buffer0;
+
+layout(binding = 1, std430) buffer buffer1_block_ssbo {
+  S inner;
+} buffer1;
+
+layout(binding = 2, std430) buffer buffer2_block_ssbo {
+  S2 inner;
+} buffer2;
+
+layout(binding = 3, std430) buffer buffer3_block_ssbo {
+  S3 inner;
+} buffer3;
+
+layout(binding = 4, std430) buffer buffer4_block_ssbo {
+  S4 inner;
+} buffer4;
+
+layout(binding = 5, std430) buffer buffer5_block_ssbo {
+  mat3 inner[1];
+} buffer5;
+
+layout(binding = 6, std430) buffer buffer6_block_ssbo {
+  S inner[1];
+} buffer6;
+
+layout(binding = 7, std430) buffer buffer7_block_ssbo {
+  S2 inner[1];
+} buffer7;
+
+void assign_and_preserve_padding_buffer0(mat3 value) {
+  buffer0.inner[0] = value[0u];
+  buffer0.inner[1] = value[1u];
+  buffer0.inner[2] = value[2u];
+}
+
+void assign_and_preserve_padding_buffer5_X(uint dest[1], mat3 value) {
+  buffer5.inner[dest[0]][0] = value[0u];
+  buffer5.inner[dest[0]][1] = value[1u];
+  buffer5.inner[dest[0]][2] = value[2u];
+}
+
+void assign_and_preserve_padding_buffer2_m_X(uint dest[1], mat3 value) {
+  buffer2.inner.m[dest[0]][0] = value[0u];
+  buffer2.inner.m[dest[0]][1] = value[1u];
+  buffer2.inner.m[dest[0]][2] = value[2u];
+}
+
+void assign_and_preserve_padding_buffer7_X_m_X(uint dest[2], mat3 value) {
+  buffer7.inner[dest[0]].m[dest[0]][0] = value[0u];
+  buffer7.inner[dest[0]].m[dest[0]][1] = value[1u];
+  buffer7.inner[dest[0]].m[dest[0]][2] = value[2u];
+}
+
+void assign_and_preserve_padding_buffer1_m(mat3 value) {
+  buffer1.inner.m[0] = value[0u];
+  buffer1.inner.m[1] = value[1u];
+  buffer1.inner.m[2] = value[2u];
+}
+
+void assign_and_preserve_padding_buffer6_X_m(uint dest[1], mat3 value) {
+  buffer6.inner[dest[0]].m[0] = value[0u];
+  buffer6.inner[dest[0]].m[1] = value[1u];
+  buffer6.inner[dest[0]].m[2] = value[2u];
+}
+
+void assign_and_preserve_padding_buffer4_s_X_m(uint dest[1], mat3 value) {
+  buffer4.inner.s[dest[0]].m[0] = value[0u];
+  buffer4.inner.s[dest[0]].m[1] = value[1u];
+  buffer4.inner.s[dest[0]].m[2] = value[2u];
+}
+
+void assign_and_preserve_padding_buffer3_s_m(mat3 value) {
+  buffer3.inner.s.m[0] = value[0u];
+  buffer3.inner.s.m[1] = value[1u];
+  buffer3.inner.s.m[2] = value[2u];
+}
+
+void assign_and_preserve_padding_1_buffer1(S value) {
+  assign_and_preserve_padding_buffer1_m(value.m);
+}
+
+void assign_and_preserve_padding_1_buffer6_X(uint dest[1], S value) {
+  uint tint_symbol_1[1] = uint[1](dest[0u]);
+  assign_and_preserve_padding_buffer6_X_m(tint_symbol_1, value.m);
+}
+
+void assign_and_preserve_padding_1_buffer4_s_X(uint dest[1], S value) {
+  uint tint_symbol_2[1] = uint[1](dest[0u]);
+  assign_and_preserve_padding_buffer4_s_X_m(tint_symbol_2, value.m);
+}
+
+void assign_and_preserve_padding_1_buffer3_s(S value) {
+  assign_and_preserve_padding_buffer3_s_m(value.m);
+}
+
+void assign_and_preserve_padding_3_buffer5(mat3 value[1]) {
+  {
+    for(uint i = 0u; (i < 1u); i = (i + 1u)) {
+      uint tint_symbol_3[1] = uint[1](i);
+      assign_and_preserve_padding_buffer5_X(tint_symbol_3, value[i]);
+    }
+  }
+}
+
+void assign_and_preserve_padding_3_buffer2_m(mat3 value[1]) {
+  {
+    for(uint i = 0u; (i < 1u); i = (i + 1u)) {
+      uint tint_symbol_4[1] = uint[1](i);
+      assign_and_preserve_padding_buffer2_m_X(tint_symbol_4, value[i]);
+    }
+  }
+}
+
+void assign_and_preserve_padding_3_buffer7_X_m(uint dest[1], mat3 value[1]) {
+  {
+    for(uint i = 0u; (i < 1u); i = (i + 1u)) {
+      uint tint_symbol_5[2] = uint[2](dest[0u], i);
+      assign_and_preserve_padding_buffer7_X_m_X(tint_symbol_5, value[i]);
+    }
+  }
+}
+
+void assign_and_preserve_padding_2_buffer2(S2 value) {
+  assign_and_preserve_padding_3_buffer2_m(value.m);
+}
+
+void assign_and_preserve_padding_2_buffer7_X(uint dest[1], S2 value) {
+  uint tint_symbol_6[1] = uint[1](dest[0u]);
+  assign_and_preserve_padding_3_buffer7_X_m(tint_symbol_6, value.m);
+}
+
+void assign_and_preserve_padding_4_buffer3(S3 value) {
+  assign_and_preserve_padding_1_buffer3_s(value.s);
+}
+
+void assign_and_preserve_padding_6_buffer6(S value[1]) {
+  {
+    for(uint i = 0u; (i < 1u); i = (i + 1u)) {
+      uint tint_symbol_7[1] = uint[1](i);
+      assign_and_preserve_padding_1_buffer6_X(tint_symbol_7, value[i]);
+    }
+  }
+}
+
+void assign_and_preserve_padding_6_buffer4_s(S value[1]) {
+  {
+    for(uint i = 0u; (i < 1u); i = (i + 1u)) {
+      uint tint_symbol_8[1] = uint[1](i);
+      assign_and_preserve_padding_1_buffer4_s_X(tint_symbol_8, value[i]);
+    }
+  }
+}
+
+void assign_and_preserve_padding_5_buffer4(S4 value) {
+  assign_and_preserve_padding_6_buffer4_s(value.s);
+}
+
+void assign_and_preserve_padding_7_buffer7(S2 value[1]) {
+  {
+    for(uint i = 0u; (i < 1u); i = (i + 1u)) {
+      uint tint_symbol_9[1] = uint[1](i);
+      assign_and_preserve_padding_2_buffer7_X(tint_symbol_9, value[i]);
+    }
+  }
+}
+
+void tint_symbol() {
+  mat3 m = mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+  {
+    for(uint c = 0u; (c < 3u); c = (c + 1u)) {
+      m[c] = vec3(float(((c * 3u) + 1u)), float(((c * 3u) + 2u)), float(((c * 3u) + 3u)));
+    }
+  }
+  {
+    mat3 a = m;
+    assign_and_preserve_padding_buffer0(a);
+  }
+  {
+    S a = S(m);
+    assign_and_preserve_padding_1_buffer1(a);
+  }
+  {
+    mat3 tint_symbol_10[1] = mat3[1](m);
+    S2 a = S2(tint_symbol_10);
+    assign_and_preserve_padding_2_buffer2(a);
+  }
+  {
+    S tint_symbol_11 = S(m);
+    S3 a = S3(tint_symbol_11);
+    assign_and_preserve_padding_4_buffer3(a);
+  }
+  {
+    S tint_symbol_12 = S(m);
+    S tint_symbol_13[1] = S[1](tint_symbol_12);
+    S4 a = S4(tint_symbol_13);
+    assign_and_preserve_padding_5_buffer4(a);
+  }
+  {
+    mat3 a[1] = mat3[1](m);
+    assign_and_preserve_padding_3_buffer5(a);
+  }
+  {
+    S tint_symbol_14 = S(m);
+    S a[1] = S[1](tint_symbol_14);
+    assign_and_preserve_padding_6_buffer6(a);
+  }
+  {
+    mat3 tint_symbol_15[1] = mat3[1](m);
+    S2 tint_symbol_16 = S2(tint_symbol_15);
+    S2 a[1] = S2[1](tint_symbol_16);
+    assign_and_preserve_padding_7_buffer7(a);
+  }
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  tint_symbol();
+  return;
+}
diff --git a/test/tint/bug/tint/2059.wgsl.expected.msl b/test/tint/bug/tint/2059.wgsl.expected.msl
new file mode 100644
index 0000000..98ac37e
--- /dev/null
+++ b/test/tint/bug/tint/2059.wgsl.expected.msl
@@ -0,0 +1,140 @@
+#include <metal_stdlib>
+
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+    const constant T& operator[](size_t i) const constant { return elements[i]; }
+    device T& operator[](size_t i) device { return elements[i]; }
+    const device T& operator[](size_t i) const device { return elements[i]; }
+    thread T& operator[](size_t i) thread { return elements[i]; }
+    const thread T& operator[](size_t i) const thread { return elements[i]; }
+    threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+    const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+    T elements[N];
+};
+
+struct tint_packed_vec3_f32_array_element {
+  /* 0x0000 */ packed_float3 elements;
+  /* 0x000c */ tint_array<int8_t, 4> tint_pad;
+};
+
+struct S_tint_packed_vec3 {
+  /* 0x0000 */ tint_array<tint_packed_vec3_f32_array_element, 3> m;
+};
+
+struct S2_tint_packed_vec3 {
+  /* 0x0000 */ tint_array<tint_array<tint_packed_vec3_f32_array_element, 3>, 1> m;
+};
+
+struct S3_tint_packed_vec3 {
+  /* 0x0000 */ S_tint_packed_vec3 s;
+};
+
+struct S4_tint_packed_vec3 {
+  /* 0x0000 */ tint_array<S_tint_packed_vec3, 1> s;
+};
+
+struct S {
+  float3x3 m;
+};
+
+struct S2 {
+  tint_array<float3x3, 1> m;
+};
+
+struct S3 {
+  S s;
+};
+
+struct S4 {
+  tint_array<S, 1> s;
+};
+
+void assign_and_preserve_padding(device tint_array<tint_packed_vec3_f32_array_element, 3>* const dest, float3x3 value) {
+  (*(dest))[0u].elements = packed_float3(value[0u]);
+  (*(dest))[1u].elements = packed_float3(value[1u]);
+  (*(dest))[2u].elements = packed_float3(value[2u]);
+}
+
+void assign_and_preserve_padding_1(device S_tint_packed_vec3* const dest, S value) {
+  assign_and_preserve_padding(&((*(dest)).m), value.m);
+}
+
+void assign_and_preserve_padding_3(device tint_array<tint_array<tint_packed_vec3_f32_array_element, 3>, 1>* const dest, tint_array<float3x3, 1> value) {
+  for(uint i = 0u; (i < 1u); i = (i + 1u)) {
+    assign_and_preserve_padding(&((*(dest))[i]), value[i]);
+  }
+}
+
+void assign_and_preserve_padding_2(device S2_tint_packed_vec3* const dest, S2 value) {
+  assign_and_preserve_padding_3(&((*(dest)).m), value.m);
+}
+
+void assign_and_preserve_padding_4(device S3_tint_packed_vec3* const dest, S3 value) {
+  assign_and_preserve_padding_1(&((*(dest)).s), value.s);
+}
+
+void assign_and_preserve_padding_6(device tint_array<S_tint_packed_vec3, 1>* const dest, tint_array<S, 1> value) {
+  for(uint i = 0u; (i < 1u); i = (i + 1u)) {
+    assign_and_preserve_padding_1(&((*(dest))[i]), value[i]);
+  }
+}
+
+void assign_and_preserve_padding_5(device S4_tint_packed_vec3* const dest, S4 value) {
+  assign_and_preserve_padding_6(&((*(dest)).s), value.s);
+}
+
+void assign_and_preserve_padding_7(device tint_array<S2_tint_packed_vec3, 1>* const dest, tint_array<S2, 1> value) {
+  for(uint i = 0u; (i < 1u); i = (i + 1u)) {
+    assign_and_preserve_padding_2(&((*(dest))[i]), value[i]);
+  }
+}
+
+kernel void tint_symbol(device tint_array<tint_packed_vec3_f32_array_element, 3>* tint_symbol_8 [[buffer(0)]], device S_tint_packed_vec3* tint_symbol_9 [[buffer(1)]], device S2_tint_packed_vec3* tint_symbol_10 [[buffer(2)]], device S3_tint_packed_vec3* tint_symbol_11 [[buffer(3)]], device S4_tint_packed_vec3* tint_symbol_12 [[buffer(4)]], device tint_array<tint_array<tint_packed_vec3_f32_array_element, 3>, 1>* tint_symbol_13 [[buffer(5)]], device tint_array<S_tint_packed_vec3, 1>* tint_symbol_14 [[buffer(6)]], device tint_array<S2_tint_packed_vec3, 1>* tint_symbol_15 [[buffer(7)]]) {
+  float3x3 m = float3x3(0.0f);
+  for(uint c = 0u; (c < 3u); c = (c + 1u)) {
+    m[c] = float3(float(((c * 3u) + 1u)), float(((c * 3u) + 2u)), float(((c * 3u) + 3u)));
+  }
+  {
+    float3x3 const a = m;
+    assign_and_preserve_padding(tint_symbol_8, a);
+  }
+  {
+    S const a = {.m=m};
+    assign_and_preserve_padding_1(tint_symbol_9, a);
+  }
+  {
+    tint_array<float3x3, 1> const tint_symbol_1 = tint_array<float3x3, 1>{m};
+    S2 const a = {.m=tint_symbol_1};
+    assign_and_preserve_padding_2(tint_symbol_10, a);
+  }
+  {
+    S const tint_symbol_2 = {.m=m};
+    S3 const a = {.s=tint_symbol_2};
+    assign_and_preserve_padding_4(tint_symbol_11, a);
+  }
+  {
+    S const tint_symbol_3 = {.m=m};
+    tint_array<S, 1> const tint_symbol_4 = tint_array<S, 1>{tint_symbol_3};
+    S4 const a = {.s=tint_symbol_4};
+    assign_and_preserve_padding_5(tint_symbol_12, a);
+  }
+  {
+    tint_array<float3x3, 1> const a = tint_array<float3x3, 1>{m};
+    assign_and_preserve_padding_3(tint_symbol_13, a);
+  }
+  {
+    S const tint_symbol_5 = {.m=m};
+    tint_array<S, 1> const a = tint_array<S, 1>{tint_symbol_5};
+    assign_and_preserve_padding_6(tint_symbol_14, a);
+  }
+  {
+    tint_array<float3x3, 1> const tint_symbol_6 = tint_array<float3x3, 1>{m};
+    S2 const tint_symbol_7 = {.m=tint_symbol_6};
+    tint_array<S2, 1> const a = tint_array<S2, 1>{tint_symbol_7};
+    assign_and_preserve_padding_7(tint_symbol_15, a);
+  }
+  return;
+}
+
diff --git a/test/tint/bug/tint/2059.wgsl.expected.spvasm b/test/tint/bug/tint/2059.wgsl.expected.spvasm
new file mode 100644
index 0000000..4c40ec4
--- /dev/null
+++ b/test/tint/bug/tint/2059.wgsl.expected.spvasm
@@ -0,0 +1,718 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 414
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint GLCompute %main "main"
+               OpExecutionMode %main LocalSize 1 1 1
+               OpName %buffer0_block "buffer0_block"
+               OpMemberName %buffer0_block 0 "inner"
+               OpName %buffer0 "buffer0"
+               OpName %buffer1_block "buffer1_block"
+               OpMemberName %buffer1_block 0 "inner"
+               OpName %S "S"
+               OpMemberName %S 0 "m"
+               OpName %buffer1 "buffer1"
+               OpName %buffer2_block "buffer2_block"
+               OpMemberName %buffer2_block 0 "inner"
+               OpName %S2 "S2"
+               OpMemberName %S2 0 "m"
+               OpName %buffer2 "buffer2"
+               OpName %buffer3_block "buffer3_block"
+               OpMemberName %buffer3_block 0 "inner"
+               OpName %S3 "S3"
+               OpMemberName %S3 0 "s"
+               OpName %buffer3 "buffer3"
+               OpName %buffer4_block "buffer4_block"
+               OpMemberName %buffer4_block 0 "inner"
+               OpName %S4 "S4"
+               OpMemberName %S4 0 "s"
+               OpName %buffer4 "buffer4"
+               OpName %buffer5_block "buffer5_block"
+               OpMemberName %buffer5_block 0 "inner"
+               OpName %buffer5 "buffer5"
+               OpName %buffer6_block "buffer6_block"
+               OpMemberName %buffer6_block 0 "inner"
+               OpName %buffer6 "buffer6"
+               OpName %buffer7_block "buffer7_block"
+               OpMemberName %buffer7_block 0 "inner"
+               OpName %buffer7 "buffer7"
+               OpName %assign_and_preserve_padding_buffer0 "assign_and_preserve_padding_buffer0"
+               OpName %value "value"
+               OpName %assign_and_preserve_padding_buffer5_X "assign_and_preserve_padding_buffer5_X"
+               OpName %dest "dest"
+               OpName %value_0 "value"
+               OpName %assign_and_preserve_padding_buffer2_m_X "assign_and_preserve_padding_buffer2_m_X"
+               OpName %dest_0 "dest"
+               OpName %value_1 "value"
+               OpName %assign_and_preserve_padding_buffer7_X_m_X "assign_and_preserve_padding_buffer7_X_m_X"
+               OpName %dest_1 "dest"
+               OpName %value_2 "value"
+               OpName %assign_and_preserve_padding_buffer1_m "assign_and_preserve_padding_buffer1_m"
+               OpName %value_3 "value"
+               OpName %assign_and_preserve_padding_buffer6_X_m "assign_and_preserve_padding_buffer6_X_m"
+               OpName %dest_2 "dest"
+               OpName %value_4 "value"
+               OpName %assign_and_preserve_padding_buffer4_s_X_m "assign_and_preserve_padding_buffer4_s_X_m"
+               OpName %dest_3 "dest"
+               OpName %value_5 "value"
+               OpName %assign_and_preserve_padding_buffer3_s_m "assign_and_preserve_padding_buffer3_s_m"
+               OpName %value_6 "value"
+               OpName %assign_and_preserve_padding_1_buffer1 "assign_and_preserve_padding_1_buffer1"
+               OpName %value_7 "value"
+               OpName %assign_and_preserve_padding_1_buffer6_X "assign_and_preserve_padding_1_buffer6_X"
+               OpName %dest_4 "dest"
+               OpName %value_8 "value"
+               OpName %assign_and_preserve_padding_1_buffer4_s_X "assign_and_preserve_padding_1_buffer4_s_X"
+               OpName %dest_5 "dest"
+               OpName %value_9 "value"
+               OpName %assign_and_preserve_padding_1_buffer3_s "assign_and_preserve_padding_1_buffer3_s"
+               OpName %value_10 "value"
+               OpName %assign_and_preserve_padding_3_buffer5 "assign_and_preserve_padding_3_buffer5"
+               OpName %value_11 "value"
+               OpName %i "i"
+               OpName %var_for_index "var_for_index"
+               OpName %assign_and_preserve_padding_3_buffer2_m "assign_and_preserve_padding_3_buffer2_m"
+               OpName %value_12 "value"
+               OpName %i_0 "i"
+               OpName %var_for_index_1 "var_for_index_1"
+               OpName %assign_and_preserve_padding_3_buffer7_X_m "assign_and_preserve_padding_3_buffer7_X_m"
+               OpName %dest_6 "dest"
+               OpName %value_13 "value"
+               OpName %i_1 "i"
+               OpName %var_for_index_2 "var_for_index_2"
+               OpName %assign_and_preserve_padding_2_buffer2 "assign_and_preserve_padding_2_buffer2"
+               OpName %value_14 "value"
+               OpName %assign_and_preserve_padding_2_buffer7_X "assign_and_preserve_padding_2_buffer7_X"
+               OpName %dest_7 "dest"
+               OpName %value_15 "value"
+               OpName %assign_and_preserve_padding_4_buffer3 "assign_and_preserve_padding_4_buffer3"
+               OpName %value_16 "value"
+               OpName %assign_and_preserve_padding_6_buffer6 "assign_and_preserve_padding_6_buffer6"
+               OpName %value_17 "value"
+               OpName %i_2 "i"
+               OpName %var_for_index_3 "var_for_index_3"
+               OpName %assign_and_preserve_padding_6_buffer4_s "assign_and_preserve_padding_6_buffer4_s"
+               OpName %value_18 "value"
+               OpName %i_3 "i"
+               OpName %var_for_index_4 "var_for_index_4"
+               OpName %assign_and_preserve_padding_5_buffer4 "assign_and_preserve_padding_5_buffer4"
+               OpName %value_19 "value"
+               OpName %assign_and_preserve_padding_7_buffer7 "assign_and_preserve_padding_7_buffer7"
+               OpName %value_20 "value"
+               OpName %i_4 "i"
+               OpName %var_for_index_5 "var_for_index_5"
+               OpName %main "main"
+               OpName %m "m"
+               OpName %c "c"
+               OpDecorate %buffer0_block Block
+               OpMemberDecorate %buffer0_block 0 Offset 0
+               OpMemberDecorate %buffer0_block 0 ColMajor
+               OpMemberDecorate %buffer0_block 0 MatrixStride 16
+               OpDecorate %buffer0 DescriptorSet 0
+               OpDecorate %buffer0 Binding 0
+               OpDecorate %buffer1_block Block
+               OpMemberDecorate %buffer1_block 0 Offset 0
+               OpMemberDecorate %S 0 Offset 0
+               OpMemberDecorate %S 0 ColMajor
+               OpMemberDecorate %S 0 MatrixStride 16
+               OpDecorate %buffer1 DescriptorSet 0
+               OpDecorate %buffer1 Binding 1
+               OpDecorate %buffer2_block Block
+               OpMemberDecorate %buffer2_block 0 Offset 0
+               OpMemberDecorate %S2 0 Offset 0
+               OpMemberDecorate %S2 0 ColMajor
+               OpMemberDecorate %S2 0 MatrixStride 16
+               OpDecorate %_arr_mat3v3float_uint_1 ArrayStride 48
+               OpDecorate %buffer2 DescriptorSet 0
+               OpDecorate %buffer2 Binding 2
+               OpDecorate %buffer3_block Block
+               OpMemberDecorate %buffer3_block 0 Offset 0
+               OpMemberDecorate %S3 0 Offset 0
+               OpDecorate %buffer3 DescriptorSet 0
+               OpDecorate %buffer3 Binding 3
+               OpDecorate %buffer4_block Block
+               OpMemberDecorate %buffer4_block 0 Offset 0
+               OpMemberDecorate %S4 0 Offset 0
+               OpDecorate %_arr_S_uint_1 ArrayStride 48
+               OpDecorate %buffer4 DescriptorSet 0
+               OpDecorate %buffer4 Binding 4
+               OpDecorate %buffer5_block Block
+               OpMemberDecorate %buffer5_block 0 Offset 0
+               OpMemberDecorate %buffer5_block 0 ColMajor
+               OpMemberDecorate %buffer5_block 0 MatrixStride 16
+               OpDecorate %buffer5 DescriptorSet 0
+               OpDecorate %buffer5 Binding 5
+               OpDecorate %buffer6_block Block
+               OpMemberDecorate %buffer6_block 0 Offset 0
+               OpDecorate %buffer6 DescriptorSet 0
+               OpDecorate %buffer6 Binding 6
+               OpDecorate %buffer7_block Block
+               OpMemberDecorate %buffer7_block 0 Offset 0
+               OpDecorate %_arr_S2_uint_1 ArrayStride 48
+               OpDecorate %buffer7 DescriptorSet 0
+               OpDecorate %buffer7 Binding 7
+               OpDecorate %_arr_uint_uint_1 ArrayStride 4
+               OpDecorate %_arr_uint_uint_2 ArrayStride 4
+      %float = OpTypeFloat 32
+    %v3float = OpTypeVector %float 3
+%mat3v3float = OpTypeMatrix %v3float 3
+%buffer0_block = OpTypeStruct %mat3v3float
+%_ptr_StorageBuffer_buffer0_block = OpTypePointer StorageBuffer %buffer0_block
+    %buffer0 = OpVariable %_ptr_StorageBuffer_buffer0_block StorageBuffer
+          %S = OpTypeStruct %mat3v3float
+%buffer1_block = OpTypeStruct %S
+%_ptr_StorageBuffer_buffer1_block = OpTypePointer StorageBuffer %buffer1_block
+    %buffer1 = OpVariable %_ptr_StorageBuffer_buffer1_block StorageBuffer
+       %uint = OpTypeInt 32 0
+     %uint_1 = OpConstant %uint 1
+%_arr_mat3v3float_uint_1 = OpTypeArray %mat3v3float %uint_1
+         %S2 = OpTypeStruct %_arr_mat3v3float_uint_1
+%buffer2_block = OpTypeStruct %S2
+%_ptr_StorageBuffer_buffer2_block = OpTypePointer StorageBuffer %buffer2_block
+    %buffer2 = OpVariable %_ptr_StorageBuffer_buffer2_block StorageBuffer
+         %S3 = OpTypeStruct %S
+%buffer3_block = OpTypeStruct %S3
+%_ptr_StorageBuffer_buffer3_block = OpTypePointer StorageBuffer %buffer3_block
+    %buffer3 = OpVariable %_ptr_StorageBuffer_buffer3_block StorageBuffer
+%_arr_S_uint_1 = OpTypeArray %S %uint_1
+         %S4 = OpTypeStruct %_arr_S_uint_1
+%buffer4_block = OpTypeStruct %S4
+%_ptr_StorageBuffer_buffer4_block = OpTypePointer StorageBuffer %buffer4_block
+    %buffer4 = OpVariable %_ptr_StorageBuffer_buffer4_block StorageBuffer
+%buffer5_block = OpTypeStruct %_arr_mat3v3float_uint_1
+%_ptr_StorageBuffer_buffer5_block = OpTypePointer StorageBuffer %buffer5_block
+    %buffer5 = OpVariable %_ptr_StorageBuffer_buffer5_block StorageBuffer
+%buffer6_block = OpTypeStruct %_arr_S_uint_1
+%_ptr_StorageBuffer_buffer6_block = OpTypePointer StorageBuffer %buffer6_block
+    %buffer6 = OpVariable %_ptr_StorageBuffer_buffer6_block StorageBuffer
+%_arr_S2_uint_1 = OpTypeArray %S2 %uint_1
+%buffer7_block = OpTypeStruct %_arr_S2_uint_1
+%_ptr_StorageBuffer_buffer7_block = OpTypePointer StorageBuffer %buffer7_block
+    %buffer7 = OpVariable %_ptr_StorageBuffer_buffer7_block StorageBuffer
+       %void = OpTypeVoid
+         %37 = OpTypeFunction %void %mat3v3float
+     %uint_0 = OpConstant %uint 0
+        %int = OpTypeInt 32 1
+         %44 = OpConstantNull %int
+%_ptr_StorageBuffer_v3float = OpTypePointer StorageBuffer %v3float
+         %47 = OpConstantNull %uint
+      %int_1 = OpConstant %int 1
+      %int_2 = OpConstant %int 2
+     %uint_2 = OpConstant %uint 2
+%_arr_uint_uint_1 = OpTypeArray %uint %uint_1
+         %56 = OpTypeFunction %void %_arr_uint_uint_1 %mat3v3float
+%_arr_uint_uint_2 = OpTypeArray %uint %uint_2
+         %84 = OpTypeFunction %void %_arr_uint_uint_2 %mat3v3float
+        %146 = OpTypeFunction %void %S
+        %152 = OpTypeFunction %void %_arr_uint_uint_1 %S
+        %174 = OpTypeFunction %void %_arr_mat3v3float_uint_1
+%_ptr_Function_uint = OpTypePointer Function %uint
+       %bool = OpTypeBool
+%_ptr_Function__arr_mat3v3float_uint_1 = OpTypePointer Function %_arr_mat3v3float_uint_1
+        %192 = OpConstantNull %_arr_mat3v3float_uint_1
+%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float
+        %224 = OpTypeFunction %void %_arr_uint_uint_1 %_arr_mat3v3float_uint_1
+        %249 = OpTypeFunction %void %S2
+        %255 = OpTypeFunction %void %_arr_uint_uint_1 %S2
+        %264 = OpTypeFunction %void %S3
+        %270 = OpTypeFunction %void %_arr_S_uint_1
+%_ptr_Function__arr_S_uint_1 = OpTypePointer Function %_arr_S_uint_1
+        %286 = OpConstantNull %_arr_S_uint_1
+%_ptr_Function_S = OpTypePointer Function %S
+        %318 = OpTypeFunction %void %S4
+        %324 = OpTypeFunction %void %_arr_S2_uint_1
+%_ptr_Function__arr_S2_uint_1 = OpTypePointer Function %_arr_S2_uint_1
+        %340 = OpConstantNull %_arr_S2_uint_1
+%_ptr_Function_S2 = OpTypePointer Function %S2
+        %350 = OpTypeFunction %void
+        %354 = OpConstantNull %mat3v3float
+     %uint_3 = OpConstant %uint 3
+%_ptr_Function_v3float = OpTypePointer Function %v3float
+%assign_and_preserve_padding_buffer0 = OpFunction %void None %37
+      %value = OpFunctionParameter %mat3v3float
+         %41 = OpLabel
+         %46 = OpAccessChain %_ptr_StorageBuffer_v3float %buffer0 %uint_0 %44
+         %48 = OpCompositeExtract %v3float %value 0
+               OpStore %46 %48
+         %50 = OpAccessChain %_ptr_StorageBuffer_v3float %buffer0 %uint_0 %int_1
+         %51 = OpCompositeExtract %v3float %value 1
+               OpStore %50 %51
+         %53 = OpAccessChain %_ptr_StorageBuffer_v3float %buffer0 %uint_0 %int_2
+         %55 = OpCompositeExtract %v3float %value 2
+               OpStore %53 %55
+               OpReturn
+               OpFunctionEnd
+%assign_and_preserve_padding_buffer5_X = OpFunction %void None %56
+       %dest = OpFunctionParameter %_arr_uint_uint_1
+    %value_0 = OpFunctionParameter %mat3v3float
+         %61 = OpLabel
+         %62 = OpCompositeExtract %uint %dest 0
+         %63 = OpAccessChain %_ptr_StorageBuffer_v3float %buffer5 %uint_0 %62 %44
+         %64 = OpCompositeExtract %v3float %value_0 0
+               OpStore %63 %64
+         %65 = OpCompositeExtract %uint %dest 0
+         %66 = OpAccessChain %_ptr_StorageBuffer_v3float %buffer5 %uint_0 %65 %int_1
+         %67 = OpCompositeExtract %v3float %value_0 1
+               OpStore %66 %67
+         %68 = OpCompositeExtract %uint %dest 0
+         %69 = OpAccessChain %_ptr_StorageBuffer_v3float %buffer5 %uint_0 %68 %int_2
+         %70 = OpCompositeExtract %v3float %value_0 2
+               OpStore %69 %70
+               OpReturn
+               OpFunctionEnd
+%assign_and_preserve_padding_buffer2_m_X = OpFunction %void None %56
+     %dest_0 = OpFunctionParameter %_arr_uint_uint_1
+    %value_1 = OpFunctionParameter %mat3v3float
+         %74 = OpLabel
+         %75 = OpCompositeExtract %uint %dest_0 0
+         %76 = OpAccessChain %_ptr_StorageBuffer_v3float %buffer2 %uint_0 %uint_0 %75 %44
+         %77 = OpCompositeExtract %v3float %value_1 0
+               OpStore %76 %77
+         %78 = OpCompositeExtract %uint %dest_0 0
+         %79 = OpAccessChain %_ptr_StorageBuffer_v3float %buffer2 %uint_0 %uint_0 %78 %int_1
+         %80 = OpCompositeExtract %v3float %value_1 1
+               OpStore %79 %80
+         %81 = OpCompositeExtract %uint %dest_0 0
+         %82 = OpAccessChain %_ptr_StorageBuffer_v3float %buffer2 %uint_0 %uint_0 %81 %int_2
+         %83 = OpCompositeExtract %v3float %value_1 2
+               OpStore %82 %83
+               OpReturn
+               OpFunctionEnd
+%assign_and_preserve_padding_buffer7_X_m_X = OpFunction %void None %84
+     %dest_1 = OpFunctionParameter %_arr_uint_uint_2
+    %value_2 = OpFunctionParameter %mat3v3float
+         %89 = OpLabel
+         %90 = OpCompositeExtract %uint %dest_1 0
+         %91 = OpCompositeExtract %uint %dest_1 0
+         %92 = OpAccessChain %_ptr_StorageBuffer_v3float %buffer7 %uint_0 %90 %uint_0 %91 %44
+         %93 = OpCompositeExtract %v3float %value_2 0
+               OpStore %92 %93
+         %94 = OpCompositeExtract %uint %dest_1 0
+         %95 = OpCompositeExtract %uint %dest_1 0
+         %96 = OpAccessChain %_ptr_StorageBuffer_v3float %buffer7 %uint_0 %94 %uint_0 %95 %int_1
+         %97 = OpCompositeExtract %v3float %value_2 1
+               OpStore %96 %97
+         %98 = OpCompositeExtract %uint %dest_1 0
+         %99 = OpCompositeExtract %uint %dest_1 0
+        %100 = OpAccessChain %_ptr_StorageBuffer_v3float %buffer7 %uint_0 %98 %uint_0 %99 %int_2
+        %101 = OpCompositeExtract %v3float %value_2 2
+               OpStore %100 %101
+               OpReturn
+               OpFunctionEnd
+%assign_and_preserve_padding_buffer1_m = OpFunction %void None %37
+    %value_3 = OpFunctionParameter %mat3v3float
+        %104 = OpLabel
+        %105 = OpAccessChain %_ptr_StorageBuffer_v3float %buffer1 %uint_0 %uint_0 %44
+        %106 = OpCompositeExtract %v3float %value_3 0
+               OpStore %105 %106
+        %107 = OpAccessChain %_ptr_StorageBuffer_v3float %buffer1 %uint_0 %uint_0 %int_1
+        %108 = OpCompositeExtract %v3float %value_3 1
+               OpStore %107 %108
+        %109 = OpAccessChain %_ptr_StorageBuffer_v3float %buffer1 %uint_0 %uint_0 %int_2
+        %110 = OpCompositeExtract %v3float %value_3 2
+               OpStore %109 %110
+               OpReturn
+               OpFunctionEnd
+%assign_and_preserve_padding_buffer6_X_m = OpFunction %void None %56
+     %dest_2 = OpFunctionParameter %_arr_uint_uint_1
+    %value_4 = OpFunctionParameter %mat3v3float
+        %114 = OpLabel
+        %115 = OpCompositeExtract %uint %dest_2 0
+        %116 = OpAccessChain %_ptr_StorageBuffer_v3float %buffer6 %uint_0 %115 %uint_0 %44
+        %117 = OpCompositeExtract %v3float %value_4 0
+               OpStore %116 %117
+        %118 = OpCompositeExtract %uint %dest_2 0
+        %119 = OpAccessChain %_ptr_StorageBuffer_v3float %buffer6 %uint_0 %118 %uint_0 %int_1
+        %120 = OpCompositeExtract %v3float %value_4 1
+               OpStore %119 %120
+        %121 = OpCompositeExtract %uint %dest_2 0
+        %122 = OpAccessChain %_ptr_StorageBuffer_v3float %buffer6 %uint_0 %121 %uint_0 %int_2
+        %123 = OpCompositeExtract %v3float %value_4 2
+               OpStore %122 %123
+               OpReturn
+               OpFunctionEnd
+%assign_and_preserve_padding_buffer4_s_X_m = OpFunction %void None %56
+     %dest_3 = OpFunctionParameter %_arr_uint_uint_1
+    %value_5 = OpFunctionParameter %mat3v3float
+        %127 = OpLabel
+        %128 = OpCompositeExtract %uint %dest_3 0
+        %129 = OpAccessChain %_ptr_StorageBuffer_v3float %buffer4 %uint_0 %uint_0 %128 %uint_0 %44
+        %130 = OpCompositeExtract %v3float %value_5 0
+               OpStore %129 %130
+        %131 = OpCompositeExtract %uint %dest_3 0
+        %132 = OpAccessChain %_ptr_StorageBuffer_v3float %buffer4 %uint_0 %uint_0 %131 %uint_0 %int_1
+        %133 = OpCompositeExtract %v3float %value_5 1
+               OpStore %132 %133
+        %134 = OpCompositeExtract %uint %dest_3 0
+        %135 = OpAccessChain %_ptr_StorageBuffer_v3float %buffer4 %uint_0 %uint_0 %134 %uint_0 %int_2
+        %136 = OpCompositeExtract %v3float %value_5 2
+               OpStore %135 %136
+               OpReturn
+               OpFunctionEnd
+%assign_and_preserve_padding_buffer3_s_m = OpFunction %void None %37
+    %value_6 = OpFunctionParameter %mat3v3float
+        %139 = OpLabel
+        %140 = OpAccessChain %_ptr_StorageBuffer_v3float %buffer3 %uint_0 %uint_0 %uint_0 %44
+        %141 = OpCompositeExtract %v3float %value_6 0
+               OpStore %140 %141
+        %142 = OpAccessChain %_ptr_StorageBuffer_v3float %buffer3 %uint_0 %uint_0 %uint_0 %int_1
+        %143 = OpCompositeExtract %v3float %value_6 1
+               OpStore %142 %143
+        %144 = OpAccessChain %_ptr_StorageBuffer_v3float %buffer3 %uint_0 %uint_0 %uint_0 %int_2
+        %145 = OpCompositeExtract %v3float %value_6 2
+               OpStore %144 %145
+               OpReturn
+               OpFunctionEnd
+%assign_and_preserve_padding_1_buffer1 = OpFunction %void None %146
+    %value_7 = OpFunctionParameter %S
+        %149 = OpLabel
+        %151 = OpCompositeExtract %mat3v3float %value_7 0
+        %150 = OpFunctionCall %void %assign_and_preserve_padding_buffer1_m %151
+               OpReturn
+               OpFunctionEnd
+%assign_and_preserve_padding_1_buffer6_X = OpFunction %void None %152
+     %dest_4 = OpFunctionParameter %_arr_uint_uint_1
+    %value_8 = OpFunctionParameter %S
+        %156 = OpLabel
+        %158 = OpCompositeExtract %uint %dest_4 0
+        %159 = OpCompositeConstruct %_arr_uint_uint_1 %158
+        %160 = OpCompositeExtract %mat3v3float %value_8 0
+        %157 = OpFunctionCall %void %assign_and_preserve_padding_buffer6_X_m %159 %160
+               OpReturn
+               OpFunctionEnd
+%assign_and_preserve_padding_1_buffer4_s_X = OpFunction %void None %152
+     %dest_5 = OpFunctionParameter %_arr_uint_uint_1
+    %value_9 = OpFunctionParameter %S
+        %164 = OpLabel
+        %166 = OpCompositeExtract %uint %dest_5 0
+        %167 = OpCompositeConstruct %_arr_uint_uint_1 %166
+        %168 = OpCompositeExtract %mat3v3float %value_9 0
+        %165 = OpFunctionCall %void %assign_and_preserve_padding_buffer4_s_X_m %167 %168
+               OpReturn
+               OpFunctionEnd
+%assign_and_preserve_padding_1_buffer3_s = OpFunction %void None %146
+   %value_10 = OpFunctionParameter %S
+        %171 = OpLabel
+        %173 = OpCompositeExtract %mat3v3float %value_10 0
+        %172 = OpFunctionCall %void %assign_and_preserve_padding_buffer3_s_m %173
+               OpReturn
+               OpFunctionEnd
+%assign_and_preserve_padding_3_buffer5 = OpFunction %void None %174
+   %value_11 = OpFunctionParameter %_arr_mat3v3float_uint_1
+        %177 = OpLabel
+          %i = OpVariable %_ptr_Function_uint Function %47
+%var_for_index = OpVariable %_ptr_Function__arr_mat3v3float_uint_1 Function %192
+               OpStore %i %47
+               OpBranch %180
+        %180 = OpLabel
+               OpLoopMerge %181 %182 None
+               OpBranch %183
+        %183 = OpLabel
+        %185 = OpLoad %uint %i
+        %186 = OpULessThan %bool %185 %uint_1
+        %184 = OpLogicalNot %bool %186
+               OpSelectionMerge %188 None
+               OpBranchConditional %184 %189 %188
+        %189 = OpLabel
+               OpBranch %181
+        %188 = OpLabel
+               OpStore %var_for_index %value_11
+        %194 = OpLoad %uint %i
+        %195 = OpCompositeConstruct %_arr_uint_uint_1 %194
+        %196 = OpLoad %uint %i
+        %198 = OpAccessChain %_ptr_Function_mat3v3float %var_for_index %196
+        %199 = OpLoad %mat3v3float %198
+        %193 = OpFunctionCall %void %assign_and_preserve_padding_buffer5_X %195 %199
+               OpBranch %182
+        %182 = OpLabel
+        %200 = OpLoad %uint %i
+        %201 = OpIAdd %uint %200 %uint_1
+               OpStore %i %201
+               OpBranch %180
+        %181 = OpLabel
+               OpReturn
+               OpFunctionEnd
+%assign_and_preserve_padding_3_buffer2_m = OpFunction %void None %174
+   %value_12 = OpFunctionParameter %_arr_mat3v3float_uint_1
+        %204 = OpLabel
+        %i_0 = OpVariable %_ptr_Function_uint Function %47
+%var_for_index_1 = OpVariable %_ptr_Function__arr_mat3v3float_uint_1 Function %192
+               OpStore %i_0 %47
+               OpBranch %206
+        %206 = OpLabel
+               OpLoopMerge %207 %208 None
+               OpBranch %209
+        %209 = OpLabel
+        %211 = OpLoad %uint %i_0
+        %212 = OpULessThan %bool %211 %uint_1
+        %210 = OpLogicalNot %bool %212
+               OpSelectionMerge %213 None
+               OpBranchConditional %210 %214 %213
+        %214 = OpLabel
+               OpBranch %207
+        %213 = OpLabel
+               OpStore %var_for_index_1 %value_12
+        %217 = OpLoad %uint %i_0
+        %218 = OpCompositeConstruct %_arr_uint_uint_1 %217
+        %219 = OpLoad %uint %i_0
+        %220 = OpAccessChain %_ptr_Function_mat3v3float %var_for_index_1 %219
+        %221 = OpLoad %mat3v3float %220
+        %216 = OpFunctionCall %void %assign_and_preserve_padding_buffer2_m_X %218 %221
+               OpBranch %208
+        %208 = OpLabel
+        %222 = OpLoad %uint %i_0
+        %223 = OpIAdd %uint %222 %uint_1
+               OpStore %i_0 %223
+               OpBranch %206
+        %207 = OpLabel
+               OpReturn
+               OpFunctionEnd
+%assign_and_preserve_padding_3_buffer7_X_m = OpFunction %void None %224
+     %dest_6 = OpFunctionParameter %_arr_uint_uint_1
+   %value_13 = OpFunctionParameter %_arr_mat3v3float_uint_1
+        %228 = OpLabel
+        %i_1 = OpVariable %_ptr_Function_uint Function %47
+%var_for_index_2 = OpVariable %_ptr_Function__arr_mat3v3float_uint_1 Function %192
+               OpStore %i_1 %47
+               OpBranch %230
+        %230 = OpLabel
+               OpLoopMerge %231 %232 None
+               OpBranch %233
+        %233 = OpLabel
+        %235 = OpLoad %uint %i_1
+        %236 = OpULessThan %bool %235 %uint_1
+        %234 = OpLogicalNot %bool %236
+               OpSelectionMerge %237 None
+               OpBranchConditional %234 %238 %237
+        %238 = OpLabel
+               OpBranch %231
+        %237 = OpLabel
+               OpStore %var_for_index_2 %value_13
+        %241 = OpCompositeExtract %uint %dest_6 0
+        %242 = OpLoad %uint %i_1
+        %243 = OpCompositeConstruct %_arr_uint_uint_2 %241 %242
+        %244 = OpLoad %uint %i_1
+        %245 = OpAccessChain %_ptr_Function_mat3v3float %var_for_index_2 %244
+        %246 = OpLoad %mat3v3float %245
+        %240 = OpFunctionCall %void %assign_and_preserve_padding_buffer7_X_m_X %243 %246
+               OpBranch %232
+        %232 = OpLabel
+        %247 = OpLoad %uint %i_1
+        %248 = OpIAdd %uint %247 %uint_1
+               OpStore %i_1 %248
+               OpBranch %230
+        %231 = OpLabel
+               OpReturn
+               OpFunctionEnd
+%assign_and_preserve_padding_2_buffer2 = OpFunction %void None %249
+   %value_14 = OpFunctionParameter %S2
+        %252 = OpLabel
+        %254 = OpCompositeExtract %_arr_mat3v3float_uint_1 %value_14 0
+        %253 = OpFunctionCall %void %assign_and_preserve_padding_3_buffer2_m %254
+               OpReturn
+               OpFunctionEnd
+%assign_and_preserve_padding_2_buffer7_X = OpFunction %void None %255
+     %dest_7 = OpFunctionParameter %_arr_uint_uint_1
+   %value_15 = OpFunctionParameter %S2
+        %259 = OpLabel
+        %261 = OpCompositeExtract %uint %dest_7 0
+        %262 = OpCompositeConstruct %_arr_uint_uint_1 %261
+        %263 = OpCompositeExtract %_arr_mat3v3float_uint_1 %value_15 0
+        %260 = OpFunctionCall %void %assign_and_preserve_padding_3_buffer7_X_m %262 %263
+               OpReturn
+               OpFunctionEnd
+%assign_and_preserve_padding_4_buffer3 = OpFunction %void None %264
+   %value_16 = OpFunctionParameter %S3
+        %267 = OpLabel
+        %269 = OpCompositeExtract %S %value_16 0
+        %268 = OpFunctionCall %void %assign_and_preserve_padding_1_buffer3_s %269
+               OpReturn
+               OpFunctionEnd
+%assign_and_preserve_padding_6_buffer6 = OpFunction %void None %270
+   %value_17 = OpFunctionParameter %_arr_S_uint_1
+        %273 = OpLabel
+        %i_2 = OpVariable %_ptr_Function_uint Function %47
+%var_for_index_3 = OpVariable %_ptr_Function__arr_S_uint_1 Function %286
+               OpStore %i_2 %47
+               OpBranch %275
+        %275 = OpLabel
+               OpLoopMerge %276 %277 None
+               OpBranch %278
+        %278 = OpLabel
+        %280 = OpLoad %uint %i_2
+        %281 = OpULessThan %bool %280 %uint_1
+        %279 = OpLogicalNot %bool %281
+               OpSelectionMerge %282 None
+               OpBranchConditional %279 %283 %282
+        %283 = OpLabel
+               OpBranch %276
+        %282 = OpLabel
+               OpStore %var_for_index_3 %value_17
+        %288 = OpLoad %uint %i_2
+        %289 = OpCompositeConstruct %_arr_uint_uint_1 %288
+        %290 = OpLoad %uint %i_2
+        %292 = OpAccessChain %_ptr_Function_S %var_for_index_3 %290
+        %293 = OpLoad %S %292
+        %287 = OpFunctionCall %void %assign_and_preserve_padding_1_buffer6_X %289 %293
+               OpBranch %277
+        %277 = OpLabel
+        %294 = OpLoad %uint %i_2
+        %295 = OpIAdd %uint %294 %uint_1
+               OpStore %i_2 %295
+               OpBranch %275
+        %276 = OpLabel
+               OpReturn
+               OpFunctionEnd
+%assign_and_preserve_padding_6_buffer4_s = OpFunction %void None %270
+   %value_18 = OpFunctionParameter %_arr_S_uint_1
+        %298 = OpLabel
+        %i_3 = OpVariable %_ptr_Function_uint Function %47
+%var_for_index_4 = OpVariable %_ptr_Function__arr_S_uint_1 Function %286
+               OpStore %i_3 %47
+               OpBranch %300
+        %300 = OpLabel
+               OpLoopMerge %301 %302 None
+               OpBranch %303
+        %303 = OpLabel
+        %305 = OpLoad %uint %i_3
+        %306 = OpULessThan %bool %305 %uint_1
+        %304 = OpLogicalNot %bool %306
+               OpSelectionMerge %307 None
+               OpBranchConditional %304 %308 %307
+        %308 = OpLabel
+               OpBranch %301
+        %307 = OpLabel
+               OpStore %var_for_index_4 %value_18
+        %311 = OpLoad %uint %i_3
+        %312 = OpCompositeConstruct %_arr_uint_uint_1 %311
+        %313 = OpLoad %uint %i_3
+        %314 = OpAccessChain %_ptr_Function_S %var_for_index_4 %313
+        %315 = OpLoad %S %314
+        %310 = OpFunctionCall %void %assign_and_preserve_padding_1_buffer4_s_X %312 %315
+               OpBranch %302
+        %302 = OpLabel
+        %316 = OpLoad %uint %i_3
+        %317 = OpIAdd %uint %316 %uint_1
+               OpStore %i_3 %317
+               OpBranch %300
+        %301 = OpLabel
+               OpReturn
+               OpFunctionEnd
+%assign_and_preserve_padding_5_buffer4 = OpFunction %void None %318
+   %value_19 = OpFunctionParameter %S4
+        %321 = OpLabel
+        %323 = OpCompositeExtract %_arr_S_uint_1 %value_19 0
+        %322 = OpFunctionCall %void %assign_and_preserve_padding_6_buffer4_s %323
+               OpReturn
+               OpFunctionEnd
+%assign_and_preserve_padding_7_buffer7 = OpFunction %void None %324
+   %value_20 = OpFunctionParameter %_arr_S2_uint_1
+        %327 = OpLabel
+        %i_4 = OpVariable %_ptr_Function_uint Function %47
+%var_for_index_5 = OpVariable %_ptr_Function__arr_S2_uint_1 Function %340
+               OpStore %i_4 %47
+               OpBranch %329
+        %329 = OpLabel
+               OpLoopMerge %330 %331 None
+               OpBranch %332
+        %332 = OpLabel
+        %334 = OpLoad %uint %i_4
+        %335 = OpULessThan %bool %334 %uint_1
+        %333 = OpLogicalNot %bool %335
+               OpSelectionMerge %336 None
+               OpBranchConditional %333 %337 %336
+        %337 = OpLabel
+               OpBranch %330
+        %336 = OpLabel
+               OpStore %var_for_index_5 %value_20
+        %342 = OpLoad %uint %i_4
+        %343 = OpCompositeConstruct %_arr_uint_uint_1 %342
+        %344 = OpLoad %uint %i_4
+        %346 = OpAccessChain %_ptr_Function_S2 %var_for_index_5 %344
+        %347 = OpLoad %S2 %346
+        %341 = OpFunctionCall %void %assign_and_preserve_padding_2_buffer7_X %343 %347
+               OpBranch %331
+        %331 = OpLabel
+        %348 = OpLoad %uint %i_4
+        %349 = OpIAdd %uint %348 %uint_1
+               OpStore %i_4 %349
+               OpBranch %329
+        %330 = OpLabel
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %350
+        %352 = OpLabel
+          %m = OpVariable %_ptr_Function_mat3v3float Function %354
+          %c = OpVariable %_ptr_Function_uint Function %47
+               OpStore %c %47
+               OpBranch %356
+        %356 = OpLabel
+               OpLoopMerge %357 %358 None
+               OpBranch %359
+        %359 = OpLabel
+        %361 = OpLoad %uint %c
+        %363 = OpULessThan %bool %361 %uint_3
+        %360 = OpLogicalNot %bool %363
+               OpSelectionMerge %364 None
+               OpBranchConditional %360 %365 %364
+        %365 = OpLabel
+               OpBranch %357
+        %364 = OpLabel
+        %366 = OpLoad %uint %c
+        %368 = OpAccessChain %_ptr_Function_v3float %m %366
+        %370 = OpLoad %uint %c
+        %371 = OpIMul %uint %370 %uint_3
+        %372 = OpIAdd %uint %371 %uint_1
+        %369 = OpConvertUToF %float %372
+        %374 = OpLoad %uint %c
+        %375 = OpIMul %uint %374 %uint_3
+        %376 = OpIAdd %uint %375 %uint_2
+        %373 = OpConvertUToF %float %376
+        %378 = OpLoad %uint %c
+        %379 = OpIMul %uint %378 %uint_3
+        %380 = OpIAdd %uint %379 %uint_3
+        %377 = OpConvertUToF %float %380
+        %381 = OpCompositeConstruct %v3float %369 %373 %377
+               OpStore %368 %381
+               OpBranch %358
+        %358 = OpLabel
+        %382 = OpLoad %uint %c
+        %383 = OpIAdd %uint %382 %uint_1
+               OpStore %c %383
+               OpBranch %356
+        %357 = OpLabel
+        %384 = OpLoad %mat3v3float %m
+        %385 = OpFunctionCall %void %assign_and_preserve_padding_buffer0 %384
+        %386 = OpLoad %mat3v3float %m
+        %387 = OpCompositeConstruct %S %386
+        %388 = OpFunctionCall %void %assign_and_preserve_padding_1_buffer1 %387
+        %389 = OpLoad %mat3v3float %m
+        %390 = OpCompositeConstruct %_arr_mat3v3float_uint_1 %389
+        %391 = OpCompositeConstruct %S2 %390
+        %392 = OpFunctionCall %void %assign_and_preserve_padding_2_buffer2 %391
+        %393 = OpLoad %mat3v3float %m
+        %394 = OpCompositeConstruct %S %393
+        %395 = OpCompositeConstruct %S3 %394
+        %396 = OpFunctionCall %void %assign_and_preserve_padding_4_buffer3 %395
+        %397 = OpLoad %mat3v3float %m
+        %398 = OpCompositeConstruct %S %397
+        %399 = OpCompositeConstruct %_arr_S_uint_1 %398
+        %400 = OpCompositeConstruct %S4 %399
+        %401 = OpFunctionCall %void %assign_and_preserve_padding_5_buffer4 %400
+        %402 = OpLoad %mat3v3float %m
+        %403 = OpCompositeConstruct %_arr_mat3v3float_uint_1 %402
+        %404 = OpFunctionCall %void %assign_and_preserve_padding_3_buffer5 %403
+        %405 = OpLoad %mat3v3float %m
+        %406 = OpCompositeConstruct %S %405
+        %407 = OpCompositeConstruct %_arr_S_uint_1 %406
+        %408 = OpFunctionCall %void %assign_and_preserve_padding_6_buffer6 %407
+        %409 = OpLoad %mat3v3float %m
+        %410 = OpCompositeConstruct %_arr_mat3v3float_uint_1 %409
+        %411 = OpCompositeConstruct %S2 %410
+        %412 = OpCompositeConstruct %_arr_S2_uint_1 %411
+        %413 = OpFunctionCall %void %assign_and_preserve_padding_7_buffer7 %412
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/bug/tint/2059.wgsl.expected.wgsl b/test/tint/bug/tint/2059.wgsl.expected.wgsl
new file mode 100644
index 0000000..e9e12f1
--- /dev/null
+++ b/test/tint/bug/tint/2059.wgsl.expected.wgsl
@@ -0,0 +1,73 @@
+alias Mat = mat3x3<f32>;
+
+struct S {
+  m : Mat,
+}
+
+struct S2 {
+  m : array<Mat, 1>,
+}
+
+struct S3 {
+  s : S,
+}
+
+struct S4 {
+  s : array<S, 1>,
+}
+
+@group(0) @binding(0) var<storage, read_write> buffer0 : Mat;
+
+@group(0) @binding(1) var<storage, read_write> buffer1 : S;
+
+@group(0) @binding(2) var<storage, read_write> buffer2 : S2;
+
+@group(0) @binding(3) var<storage, read_write> buffer3 : S3;
+
+@group(0) @binding(4) var<storage, read_write> buffer4 : S4;
+
+@group(0) @binding(5) var<storage, read_write> buffer5 : array<Mat, 1>;
+
+@group(0) @binding(6) var<storage, read_write> buffer6 : array<S, 1>;
+
+@group(0) @binding(7) var<storage, read_write> buffer7 : array<S2, 1>;
+
+@compute @workgroup_size(1)
+fn main() {
+  var m : Mat;
+  for(var c = 0u; (c < 3); c++) {
+    m[c] = vec3(f32(((c * 3) + 1)), f32(((c * 3) + 2)), f32(((c * 3) + 3)));
+  }
+  {
+    let a = m;
+    buffer0 = a;
+  }
+  {
+    let a = S(m);
+    buffer1 = a;
+  }
+  {
+    let a = S2(array<Mat, 1>(m));
+    buffer2 = a;
+  }
+  {
+    let a = S3(S(m));
+    buffer3 = a;
+  }
+  {
+    let a = S4(array<S, 1>(S(m)));
+    buffer4 = a;
+  }
+  {
+    let a = array<Mat, 1>(m);
+    buffer5 = a;
+  }
+  {
+    let a = array<S, 1>(S(m));
+    buffer6 = a;
+  }
+  {
+    let a = array<S2, 1>(S2(array<Mat, 1>(m)));
+    buffer7 = a;
+  }
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.dxc.hlsl
index 2f49262..050f970 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.dxc.hlsl
@@ -87,7 +87,7 @@
 ExternalTextureParams ext_tex_params_load(uint offset) {
   const uint scalar_offset_17 = ((offset + 0u)) / 4;
   const uint scalar_offset_18 = ((offset + 4u)) / 4;
-  const ExternalTextureParams tint_symbol_2 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
+  ExternalTextureParams tint_symbol_2 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
   return tint_symbol_2;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.fxc.hlsl
index 2f49262..050f970 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.fxc.hlsl
@@ -87,7 +87,7 @@
 ExternalTextureParams ext_tex_params_load(uint offset) {
   const uint scalar_offset_17 = ((offset + 0u)) / 4;
   const uint scalar_offset_18 = ((offset + 4u)) / 4;
-  const ExternalTextureParams tint_symbol_2 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
+  ExternalTextureParams tint_symbol_2 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
   return tint_symbol_2;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.dxc.hlsl
index afd58fa..c4eb28d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.dxc.hlsl
@@ -87,7 +87,7 @@
 ExternalTextureParams ext_tex_params_load(uint offset) {
   const uint scalar_offset_17 = ((offset + 0u)) / 4;
   const uint scalar_offset_18 = ((offset + 4u)) / 4;
-  const ExternalTextureParams tint_symbol_2 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
+  ExternalTextureParams tint_symbol_2 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
   return tint_symbol_2;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.fxc.hlsl
index afd58fa..c4eb28d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.fxc.hlsl
@@ -87,7 +87,7 @@
 ExternalTextureParams ext_tex_params_load(uint offset) {
   const uint scalar_offset_17 = ((offset + 0u)) / 4;
   const uint scalar_offset_18 = ((offset + 4u)) / 4;
-  const ExternalTextureParams tint_symbol_2 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
+  ExternalTextureParams tint_symbol_2 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
   return tint_symbol_2;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl
index 73051f0..bbd35b2 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl
@@ -98,7 +98,7 @@
 ExternalTextureParams ext_tex_params_load(uint offset) {
   const uint scalar_offset_17 = ((offset + 0u)) / 4;
   const uint scalar_offset_18 = ((offset + 4u)) / 4;
-  const ExternalTextureParams tint_symbol_2 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
+  ExternalTextureParams tint_symbol_2 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
   return tint_symbol_2;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl
index 73051f0..bbd35b2 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl
@@ -98,7 +98,7 @@
 ExternalTextureParams ext_tex_params_load(uint offset) {
   const uint scalar_offset_17 = ((offset + 0u)) / 4;
   const uint scalar_offset_18 = ((offset + 4u)) / 4;
-  const ExternalTextureParams tint_symbol_2 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
+  ExternalTextureParams tint_symbol_2 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
   return tint_symbol_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.dxc.hlsl
index fba72ec..9ddbb0e 100644
--- a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.dxc.hlsl
@@ -87,7 +87,7 @@
 ExternalTextureParams ext_tex_params_load(uint offset) {
   const uint scalar_offset_17 = ((offset + 0u)) / 4;
   const uint scalar_offset_18 = ((offset + 4u)) / 4;
-  const ExternalTextureParams tint_symbol_2 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
+  ExternalTextureParams tint_symbol_2 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
   return tint_symbol_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.fxc.hlsl
index fba72ec..9ddbb0e 100644
--- a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.fxc.hlsl
@@ -87,7 +87,7 @@
 ExternalTextureParams ext_tex_params_load(uint offset) {
   const uint scalar_offset_17 = ((offset + 0u)) / 4;
   const uint scalar_offset_18 = ((offset + 4u)) / 4;
-  const ExternalTextureParams tint_symbol_2 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
+  ExternalTextureParams tint_symbol_2 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
   return tint_symbol_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.dxc.hlsl
index 84647f6..d579e11 100644
--- a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.dxc.hlsl
@@ -87,7 +87,7 @@
 ExternalTextureParams ext_tex_params_load(uint offset) {
   const uint scalar_offset_17 = ((offset + 0u)) / 4;
   const uint scalar_offset_18 = ((offset + 4u)) / 4;
-  const ExternalTextureParams tint_symbol_2 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
+  ExternalTextureParams tint_symbol_2 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
   return tint_symbol_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.fxc.hlsl
index 84647f6..d579e11 100644
--- a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.fxc.hlsl
@@ -87,7 +87,7 @@
 ExternalTextureParams ext_tex_params_load(uint offset) {
   const uint scalar_offset_17 = ((offset + 0u)) / 4;
   const uint scalar_offset_18 = ((offset + 4u)) / 4;
-  const ExternalTextureParams tint_symbol_2 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
+  ExternalTextureParams tint_symbol_2 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
   return tint_symbol_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl
index e62aa1b..ae45a89 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl
@@ -98,7 +98,7 @@
 ExternalTextureParams ext_tex_params_load(uint offset) {
   const uint scalar_offset_17 = ((offset + 0u)) / 4;
   const uint scalar_offset_18 = ((offset + 4u)) / 4;
-  const ExternalTextureParams tint_symbol_2 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
+  ExternalTextureParams tint_symbol_2 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
   return tint_symbol_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl
index e62aa1b..ae45a89 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl
@@ -98,7 +98,7 @@
 ExternalTextureParams ext_tex_params_load(uint offset) {
   const uint scalar_offset_17 = ((offset + 0u)) / 4;
   const uint scalar_offset_18 = ((offset + 4u)) / 4;
-  const ExternalTextureParams tint_symbol_2 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
+  ExternalTextureParams tint_symbol_2 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
   return tint_symbol_2;
 }
 
diff --git a/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.dxc.hlsl b/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.dxc.hlsl
index 3703a12..2ebfd49 100644
--- a/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.dxc.hlsl
@@ -91,7 +91,7 @@
 ExternalTextureParams ext_tex_params_load(uint offset) {
   const uint scalar_offset_17 = ((offset + 0u)) / 4;
   const uint scalar_offset_18 = ((offset + 4u)) / 4;
-  const ExternalTextureParams tint_symbol_3 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
+  ExternalTextureParams tint_symbol_3 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
   return tint_symbol_3;
 }
 
diff --git a/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.fxc.hlsl b/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.fxc.hlsl
index 3703a12..2ebfd49 100644
--- a/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.fxc.hlsl
@@ -91,7 +91,7 @@
 ExternalTextureParams ext_tex_params_load(uint offset) {
   const uint scalar_offset_17 = ((offset + 0u)) / 4;
   const uint scalar_offset_18 = ((offset + 4u)) / 4;
-  const ExternalTextureParams tint_symbol_3 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
+  ExternalTextureParams tint_symbol_3 = {ext_tex_params[scalar_offset_17 / 4][scalar_offset_17 % 4], ext_tex_params[scalar_offset_18 / 4][scalar_offset_18 % 4], ext_tex_params_load_2((offset + 16u)), ext_tex_params_load_4((offset + 64u)), ext_tex_params_load_4((offset + 96u)), ext_tex_params_load_6((offset + 128u)), ext_tex_params_load_8((offset + 176u))};
   return tint_symbol_3;
 }
 
diff --git a/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.dxc.hlsl b/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.dxc.hlsl
index eb3a52c..feaaefa 100644
--- a/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.dxc.hlsl
@@ -16,7 +16,7 @@
 
 Outer tint_workgroupUniformLoad_v() {
   GroupMemoryBarrierWithGroupSync();
-  const Outer result = v;
+  Outer result = v;
   GroupMemoryBarrierWithGroupSync();
   return result;
 }
diff --git a/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.fxc.hlsl b/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.fxc.hlsl
index eb3a52c..feaaefa 100644
--- a/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.fxc.hlsl
@@ -16,7 +16,7 @@
 
 Outer tint_workgroupUniformLoad_v() {
   GroupMemoryBarrierWithGroupSync();
-  const Outer result = v;
+  Outer result = v;
   GroupMemoryBarrierWithGroupSync();
   return result;
 }
diff --git a/test/tint/types/struct_members.wgsl.expected.dxc.hlsl b/test/tint/types/struct_members.wgsl.expected.dxc.hlsl
index 671d9af..6435274 100644
--- a/test/tint/types/struct_members.wgsl.expected.dxc.hlsl
+++ b/test/tint/types/struct_members.wgsl.expected.dxc.hlsl
@@ -16,6 +16,6 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  const S s = (S)0;
+  S s = (S)0;
   return;
 }
diff --git a/test/tint/types/struct_members.wgsl.expected.fxc.hlsl b/test/tint/types/struct_members.wgsl.expected.fxc.hlsl
index 671d9af..6435274 100644
--- a/test/tint/types/struct_members.wgsl.expected.fxc.hlsl
+++ b/test/tint/types/struct_members.wgsl.expected.fxc.hlsl
@@ -16,6 +16,6 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  const S s = (S)0;
+  S s = (S)0;
   return;
 }