diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl
index 3249340..195dba5 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl
@@ -1,5 +1,5 @@
-let m = mat2x2(mat2x2<f32>(0.0f, 1.0f,
-                           2.0f, 3.0f));
+var<private> m = mat2x2(mat2x2<f32>(0.0f, 1.0f,
+                                    2.0f, 3.0f));
 
 fn f() -> mat2x2<f32> {
     let m_1 = mat2x2(m);
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.glsl
index 9f37260..f820bd4 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.glsl
@@ -4,9 +4,9 @@
 void unused_entry_point() {
   return;
 }
-const mat2 m = mat2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f));
+mat2 m = mat2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f));
 mat2 f() {
-  mat2 m_1 = mat2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f));
+  mat2 m_1 = mat2(m);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.hlsl
index 4e8ff0b..738053f 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.hlsl
@@ -3,9 +3,9 @@
   return;
 }
 
-static const float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+static float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
 
 float2x2 f() {
-  const float2x2 m_1 = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+  const float2x2 m_1 = float2x2(m);
   return m_1;
 }
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.msl
index c464132..dcbe1b0 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.msl
@@ -1,10 +1,9 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
-
 float2x2 f() {
-  float2x2 const m_1 = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+  thread float2x2 tint_symbol = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+  float2x2 const m_1 = float2x2(tint_symbol);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.spvasm
index b2cc1c4..07b1ba1 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 18
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -19,15 +19,18 @@
     %float_2 = OpConstant %float 2
     %float_3 = OpConstant %float 3
           %9 = OpConstantComposite %v2float %float_2 %float_3
-          %m = OpConstantComposite %mat2v2float %6 %9
+         %10 = OpConstantComposite %mat2v2float %6 %9
+%_ptr_Private_mat2v2float = OpTypePointer Private %mat2v2float
+          %m = OpVariable %_ptr_Private_mat2v2float Private %10
        %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-         %15 = OpTypeFunction %mat2v2float
-%unused_entry_point = OpFunction %void None %11
-         %14 = OpLabel
+         %13 = OpTypeFunction %void
+         %17 = OpTypeFunction %mat2v2float
+%unused_entry_point = OpFunction %void None %13
+         %16 = OpLabel
                OpReturn
                OpFunctionEnd
-          %f = OpFunction %mat2v2float None %15
-         %17 = OpLabel
-               OpReturnValue %m
+          %f = OpFunction %mat2v2float None %17
+         %19 = OpLabel
+         %21 = OpLoad %mat2v2float %m
+               OpReturnValue %21
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.wgsl
index 27431a6..5950793 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.wgsl
@@ -1,4 +1,4 @@
-let m = mat2x2(mat2x2<f32>(0.0f, 1.0f, 2.0f, 3.0f));
+var<private> m = mat2x2(mat2x2<f32>(0.0f, 1.0f, 2.0f, 3.0f));
 
 fn f() -> mat2x2<f32> {
   let m_1 = mat2x2(m);
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl
index d2f7f21..8f8c2f9 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl
@@ -1,2 +1,2 @@
-let m = mat2x2<f32>(0.0f, 1.0f,
-                    2.0f, 3.0f);
+var<private> m = mat2x2<f32>(0.0f, 1.0f,
+                             2.0f, 3.0f);
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.glsl
index f2eeed5..cb3e1d2 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2 m = mat2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f));
+mat2 m = mat2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.hlsl
index c2e0d31..28c5d1f 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+static float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.msl
index b62a321..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.spvasm
index 126308b..c04960a 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 15
+; Bound: 17
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -18,10 +18,12 @@
     %float_2 = OpConstant %float 2
     %float_3 = OpConstant %float 3
           %9 = OpConstantComposite %v2float %float_2 %float_3
-          %m = OpConstantComposite %mat2v2float %6 %9
+         %10 = OpConstantComposite %mat2v2float %6 %9
+%_ptr_Private_mat2v2float = OpTypePointer Private %mat2v2float
+          %m = OpVariable %_ptr_Private_mat2v2float Private %10
        %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %11
-         %14 = OpLabel
+         %13 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %13
+         %16 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.wgsl
index 39cec79..027ab22 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat2x2<f32>(0.0f, 1.0f, 2.0f, 3.0f);
+var<private> m = mat2x2<f32>(0.0f, 1.0f, 2.0f, 3.0f);
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl
index 3841d4e..6912816 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl
@@ -1,2 +1,2 @@
-let m = mat2x2<f32>(vec2<f32>(0.0f, 1.0f),
-                    vec2<f32>(2.0f, 3.0f));
+var<private> m = mat2x2<f32>(vec2<f32>(0.0f, 1.0f),
+                             vec2<f32>(2.0f, 3.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.glsl
index f2eeed5..cb3e1d2 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2 m = mat2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f));
+mat2 m = mat2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.hlsl
index c2e0d31..28c5d1f 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+static float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.msl
index b62a321..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.spvasm
index 126308b..c04960a 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 15
+; Bound: 17
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -18,10 +18,12 @@
     %float_2 = OpConstant %float 2
     %float_3 = OpConstant %float 3
           %9 = OpConstantComposite %v2float %float_2 %float_3
-          %m = OpConstantComposite %mat2v2float %6 %9
+         %10 = OpConstantComposite %mat2v2float %6 %9
+%_ptr_Private_mat2v2float = OpTypePointer Private %mat2v2float
+          %m = OpVariable %_ptr_Private_mat2v2float Private %10
        %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %11
-         %14 = OpLabel
+         %13 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %13
+         %16 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.wgsl
index ff4e276..b3b5d6e 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat2x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f));
+var<private> m = mat2x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl
index 3b4c5e2..bd51d6b 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl
@@ -1,5 +1,5 @@
-let m = mat2x2(mat2x2(0.0f, 1.0f,
-                      2.0f, 3.0f));
+var<private> m = mat2x2(mat2x2(0.0f, 1.0f,
+                               2.0f, 3.0f));
 
 fn f() -> mat2x2<f32> {
     let m_1 = mat2x2(m);
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.glsl
index 9f37260..f820bd4 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.glsl
@@ -4,9 +4,9 @@
 void unused_entry_point() {
   return;
 }
-const mat2 m = mat2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f));
+mat2 m = mat2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f));
 mat2 f() {
-  mat2 m_1 = mat2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f));
+  mat2 m_1 = mat2(m);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.hlsl
index 4e8ff0b..738053f 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.hlsl
@@ -3,9 +3,9 @@
   return;
 }
 
-static const float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+static float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
 
 float2x2 f() {
-  const float2x2 m_1 = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+  const float2x2 m_1 = float2x2(m);
   return m_1;
 }
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.msl
index c464132..dcbe1b0 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.msl
@@ -1,10 +1,9 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
-
 float2x2 f() {
-  float2x2 const m_1 = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+  thread float2x2 tint_symbol = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+  float2x2 const m_1 = float2x2(tint_symbol);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.spvasm
index b2cc1c4..07b1ba1 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 18
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -19,15 +19,18 @@
     %float_2 = OpConstant %float 2
     %float_3 = OpConstant %float 3
           %9 = OpConstantComposite %v2float %float_2 %float_3
-          %m = OpConstantComposite %mat2v2float %6 %9
+         %10 = OpConstantComposite %mat2v2float %6 %9
+%_ptr_Private_mat2v2float = OpTypePointer Private %mat2v2float
+          %m = OpVariable %_ptr_Private_mat2v2float Private %10
        %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-         %15 = OpTypeFunction %mat2v2float
-%unused_entry_point = OpFunction %void None %11
-         %14 = OpLabel
+         %13 = OpTypeFunction %void
+         %17 = OpTypeFunction %mat2v2float
+%unused_entry_point = OpFunction %void None %13
+         %16 = OpLabel
                OpReturn
                OpFunctionEnd
-          %f = OpFunction %mat2v2float None %15
-         %17 = OpLabel
-               OpReturnValue %m
+          %f = OpFunction %mat2v2float None %17
+         %19 = OpLabel
+         %21 = OpLoad %mat2v2float %m
+               OpReturnValue %21
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.wgsl
index cd44a0f..fb8399a 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.wgsl
@@ -1,4 +1,4 @@
-let m = mat2x2(mat2x2(0.0f, 1.0f, 2.0f, 3.0f));
+var<private> m = mat2x2(mat2x2(0.0f, 1.0f, 2.0f, 3.0f));
 
 fn f() -> mat2x2<f32> {
   let m_1 = mat2x2(m);
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl
index 0195661..99f7353 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl
@@ -1,2 +1,2 @@
-let m = mat2x2(0.0, 1.0,
-               2.0, 3.0);
+var<private> m = mat2x2(0.0, 1.0,
+                        2.0, 3.0);
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.glsl
index f2eeed5..cb3e1d2 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2 m = mat2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f));
+mat2 m = mat2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.hlsl
index c2e0d31..28c5d1f 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+static float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.msl
index b62a321..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.spvasm
index 126308b..c04960a 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 15
+; Bound: 17
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -18,10 +18,12 @@
     %float_2 = OpConstant %float 2
     %float_3 = OpConstant %float 3
           %9 = OpConstantComposite %v2float %float_2 %float_3
-          %m = OpConstantComposite %mat2v2float %6 %9
+         %10 = OpConstantComposite %mat2v2float %6 %9
+%_ptr_Private_mat2v2float = OpTypePointer Private %mat2v2float
+          %m = OpVariable %_ptr_Private_mat2v2float Private %10
        %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %11
-         %14 = OpLabel
+         %13 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %13
+         %16 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.wgsl
index e4941d5..e1064e8 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat2x2(0.0, 1.0, 2.0, 3.0);
+var<private> m = mat2x2(0.0, 1.0, 2.0, 3.0);
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl
index 802bd0b..0fb8992 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl
@@ -1,2 +1,2 @@
-let m = mat2x2(0.0f, 1.0f,
-               2.0f, 3.0f);
+var<private> m = mat2x2(0.0f, 1.0f,
+                        2.0f, 3.0f);
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.glsl
index f2eeed5..cb3e1d2 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2 m = mat2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f));
+mat2 m = mat2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.hlsl
index c2e0d31..28c5d1f 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+static float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.msl
index b62a321..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.spvasm
index 126308b..c04960a 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 15
+; Bound: 17
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -18,10 +18,12 @@
     %float_2 = OpConstant %float 2
     %float_3 = OpConstant %float 3
           %9 = OpConstantComposite %v2float %float_2 %float_3
-          %m = OpConstantComposite %mat2v2float %6 %9
+         %10 = OpConstantComposite %mat2v2float %6 %9
+%_ptr_Private_mat2v2float = OpTypePointer Private %mat2v2float
+          %m = OpVariable %_ptr_Private_mat2v2float Private %10
        %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %11
-         %14 = OpLabel
+         %13 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %13
+         %16 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.wgsl
index 1078c57..4a3c56d 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat2x2(0.0f, 1.0f, 2.0f, 3.0f);
+var<private> m = mat2x2(0.0f, 1.0f, 2.0f, 3.0f);
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl
index 0698377..8c1ad0e 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl
@@ -1,2 +1,2 @@
-let m = mat2x2(vec2(0.0, 1.0),
-               vec2(2.0, 3.0));
+var<private> m = mat2x2(vec2(0.0, 1.0),
+                        vec2(2.0, 3.0));
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.glsl
index f2eeed5..cb3e1d2 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2 m = mat2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f));
+mat2 m = mat2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.hlsl
index c2e0d31..28c5d1f 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+static float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.msl
index b62a321..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.spvasm
index 126308b..c04960a 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 15
+; Bound: 17
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -18,10 +18,12 @@
     %float_2 = OpConstant %float 2
     %float_3 = OpConstant %float 3
           %9 = OpConstantComposite %v2float %float_2 %float_3
-          %m = OpConstantComposite %mat2v2float %6 %9
+         %10 = OpConstantComposite %mat2v2float %6 %9
+%_ptr_Private_mat2v2float = OpTypePointer Private %mat2v2float
+          %m = OpVariable %_ptr_Private_mat2v2float Private %10
        %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %11
-         %14 = OpLabel
+         %13 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %13
+         %16 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.wgsl
index 873422d..38d5333 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat2x2(vec2(0.0, 1.0), vec2(2.0, 3.0));
+var<private> m = mat2x2(vec2(0.0, 1.0), vec2(2.0, 3.0));
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl
index f802821..c592c6c 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl
@@ -1,2 +1,2 @@
-let m = mat2x2(vec2<f32>(0.0, 1.0),
-               vec2<f32>(2.0, 3.0));
+var<private> m = mat2x2(vec2<f32>(0.0, 1.0),
+                        vec2<f32>(2.0, 3.0));
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.glsl
index f2eeed5..cb3e1d2 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2 m = mat2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f));
+mat2 m = mat2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.hlsl
index c2e0d31..28c5d1f 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+static float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.msl
index b62a321..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.spvasm
index 126308b..c04960a 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 15
+; Bound: 17
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -18,10 +18,12 @@
     %float_2 = OpConstant %float 2
     %float_3 = OpConstant %float 3
           %9 = OpConstantComposite %v2float %float_2 %float_3
-          %m = OpConstantComposite %mat2v2float %6 %9
+         %10 = OpConstantComposite %mat2v2float %6 %9
+%_ptr_Private_mat2v2float = OpTypePointer Private %mat2v2float
+          %m = OpVariable %_ptr_Private_mat2v2float Private %10
        %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %11
-         %14 = OpLabel
+         %13 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %13
+         %16 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.wgsl
index 9a1f4c6..48f4288 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat2x2(vec2<f32>(0.0, 1.0), vec2<f32>(2.0, 3.0));
+var<private> m = mat2x2(vec2<f32>(0.0, 1.0), vec2<f32>(2.0, 3.0));
diff --git a/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl b/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl
index 7d23bcf..8f77ea2 100644
--- a/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl
@@ -1 +1 @@
-let m = mat2x2<f32>();
+var<private> m = mat2x2<f32>();
diff --git a/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.glsl
index a496f95..bd82c13 100644
--- a/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2 m = mat2(vec2(0.0f), vec2(0.0f));
+mat2 m = mat2(vec2(0.0f), vec2(0.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.hlsl
index a38b32b..1140175 100644
--- a/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float2x2 m = float2x2((0.0f).xx, (0.0f).xx);
+static float2x2 m = float2x2((0.0f).xx, (0.0f).xx);
diff --git a/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.msl
index 9076107..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2x2 m = float2x2(float2(0.0f), float2(0.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.spvasm
index 849d656..cd2602a 100644
--- a/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 9
+; Bound: 11
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -12,10 +12,12 @@
       %float = OpTypeFloat 32
     %v2float = OpTypeVector %float 2
 %mat2v2float = OpTypeMatrix %v2float 2
-          %m = OpConstantNull %mat2v2float
+          %4 = OpConstantNull %mat2v2float
+%_ptr_Private_mat2v2float = OpTypePointer Private %mat2v2float
+          %m = OpVariable %_ptr_Private_mat2v2float Private %4
        %void = OpTypeVoid
-          %5 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %5
-          %8 = OpLabel
+          %7 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %7
+         %10 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.wgsl
index 7d23bcf..8f77ea2 100644
--- a/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat2x2<f32>();
+var<private> m = mat2x2<f32>();
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl
index dff89c8..2c63c91 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl
@@ -1,5 +1,5 @@
-let m = mat2x3(mat2x3<f32>(0.0f, 1.0f, 2.0f,
-                           3.0f, 4.0f, 5.0f));
+var<private> m = mat2x3(mat2x3<f32>(0.0f, 1.0f, 2.0f,
+                                    3.0f, 4.0f, 5.0f));
 
 fn f() -> mat2x3<f32> {
     let m_1 = mat2x3(m);
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.glsl
index 8b1bb8d..03da8f6 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.glsl
@@ -4,9 +4,9 @@
 void unused_entry_point() {
   return;
 }
-const mat2x3 m = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f));
+mat2x3 m = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f));
 mat2x3 f() {
-  mat2x3 m_1 = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f));
+  mat2x3 m_1 = mat2x3(m);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.hlsl
index 96f3472..4fee374 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.hlsl
@@ -3,9 +3,9 @@
   return;
 }
 
-static const float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+static float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
 
 float2x3 f() {
-  const float2x3 m_1 = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+  const float2x3 m_1 = float2x3(m);
   return m_1;
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.msl
index e0619e1..03b6fd7 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.msl
@@ -1,10 +1,9 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
-
 float2x3 f() {
-  float2x3 const m_1 = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+  thread float2x3 tint_symbol = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+  float2x3 const m_1 = float2x3(tint_symbol);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.spvasm
index 075746a..8c235ee 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 20
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -21,15 +21,18 @@
     %float_4 = OpConstant %float 4
     %float_5 = OpConstant %float 5
          %11 = OpConstantComposite %v3float %float_3 %float_4 %float_5
-          %m = OpConstantComposite %mat2v3float %7 %11
+         %12 = OpConstantComposite %mat2v3float %7 %11
+%_ptr_Private_mat2v3float = OpTypePointer Private %mat2v3float
+          %m = OpVariable %_ptr_Private_mat2v3float Private %12
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
-         %17 = OpTypeFunction %mat2v3float
-%unused_entry_point = OpFunction %void None %13
-         %16 = OpLabel
+         %15 = OpTypeFunction %void
+         %19 = OpTypeFunction %mat2v3float
+%unused_entry_point = OpFunction %void None %15
+         %18 = OpLabel
                OpReturn
                OpFunctionEnd
-          %f = OpFunction %mat2v3float None %17
-         %19 = OpLabel
-               OpReturnValue %m
+          %f = OpFunction %mat2v3float None %19
+         %21 = OpLabel
+         %23 = OpLoad %mat2v3float %m
+               OpReturnValue %23
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.wgsl
index 5c9282f..e934f83 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.wgsl
@@ -1,4 +1,4 @@
-let m = mat2x3(mat2x3<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f));
+var<private> m = mat2x3(mat2x3<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f));
 
 fn f() -> mat2x3<f32> {
   let m_1 = mat2x3(m);
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl
index 4f73038..eb4e496 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl
@@ -1,2 +1,2 @@
-let m = mat2x3<f32>(0.0f, 1.0f, 2.0f,
-                    3.0f, 4.0f, 5.0f);
+var<private> m = mat2x3<f32>(0.0f, 1.0f, 2.0f,
+                             3.0f, 4.0f, 5.0f);
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.glsl
index 919400a..275e22b 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2x3 m = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f));
+mat2x3 m = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.hlsl
index fb12d01..c2d1be7 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+static float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.msl
index 443c61f..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.spvasm
index c4ce1bd..578716d 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 17
+; Bound: 19
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -20,10 +20,12 @@
     %float_4 = OpConstant %float 4
     %float_5 = OpConstant %float 5
          %11 = OpConstantComposite %v3float %float_3 %float_4 %float_5
-          %m = OpConstantComposite %mat2v3float %7 %11
+         %12 = OpConstantComposite %mat2v3float %7 %11
+%_ptr_Private_mat2v3float = OpTypePointer Private %mat2v3float
+          %m = OpVariable %_ptr_Private_mat2v3float Private %12
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %13
-         %16 = OpLabel
+         %15 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %15
+         %18 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.wgsl
index 6de0a5f..a886d09 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat2x3<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f);
+var<private> m = mat2x3<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f);
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl
index 736b493..2439d6d 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl
@@ -1,2 +1,2 @@
-let m = mat2x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f),
-                    vec3<f32>(3.0f, 4.0f, 5.0f));
+var<private> m = mat2x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f),
+                             vec3<f32>(3.0f, 4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.glsl
index 919400a..275e22b 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2x3 m = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f));
+mat2x3 m = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.hlsl
index fb12d01..c2d1be7 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+static float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.msl
index 443c61f..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.spvasm
index c4ce1bd..578716d 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 17
+; Bound: 19
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -20,10 +20,12 @@
     %float_4 = OpConstant %float 4
     %float_5 = OpConstant %float 5
          %11 = OpConstantComposite %v3float %float_3 %float_4 %float_5
-          %m = OpConstantComposite %mat2v3float %7 %11
+         %12 = OpConstantComposite %mat2v3float %7 %11
+%_ptr_Private_mat2v3float = OpTypePointer Private %mat2v3float
+          %m = OpVariable %_ptr_Private_mat2v3float Private %12
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %13
-         %16 = OpLabel
+         %15 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %15
+         %18 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.wgsl
index 6bfd682..79d55b3 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat2x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f));
+var<private> m = mat2x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl
index 93c90e7..6babe00 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl
@@ -1,5 +1,5 @@
-let m = mat2x3(mat2x3(0.0f, 1.0f, 2.0f,
-                      3.0f, 4.0f, 5.0f));
+var<private> m = mat2x3(mat2x3(0.0f, 1.0f, 2.0f,
+                               3.0f, 4.0f, 5.0f));
 
 fn f() -> mat2x3<f32> {
     let m_1 = mat2x3(m);
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.glsl
index 8b1bb8d..03da8f6 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.glsl
@@ -4,9 +4,9 @@
 void unused_entry_point() {
   return;
 }
-const mat2x3 m = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f));
+mat2x3 m = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f));
 mat2x3 f() {
-  mat2x3 m_1 = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f));
+  mat2x3 m_1 = mat2x3(m);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.hlsl
index 96f3472..4fee374 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.hlsl
@@ -3,9 +3,9 @@
   return;
 }
 
-static const float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+static float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
 
 float2x3 f() {
-  const float2x3 m_1 = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+  const float2x3 m_1 = float2x3(m);
   return m_1;
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.msl
index e0619e1..03b6fd7 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.msl
@@ -1,10 +1,9 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
-
 float2x3 f() {
-  float2x3 const m_1 = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+  thread float2x3 tint_symbol = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+  float2x3 const m_1 = float2x3(tint_symbol);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.spvasm
index 075746a..8c235ee 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 20
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -21,15 +21,18 @@
     %float_4 = OpConstant %float 4
     %float_5 = OpConstant %float 5
          %11 = OpConstantComposite %v3float %float_3 %float_4 %float_5
-          %m = OpConstantComposite %mat2v3float %7 %11
+         %12 = OpConstantComposite %mat2v3float %7 %11
+%_ptr_Private_mat2v3float = OpTypePointer Private %mat2v3float
+          %m = OpVariable %_ptr_Private_mat2v3float Private %12
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
-         %17 = OpTypeFunction %mat2v3float
-%unused_entry_point = OpFunction %void None %13
-         %16 = OpLabel
+         %15 = OpTypeFunction %void
+         %19 = OpTypeFunction %mat2v3float
+%unused_entry_point = OpFunction %void None %15
+         %18 = OpLabel
                OpReturn
                OpFunctionEnd
-          %f = OpFunction %mat2v3float None %17
-         %19 = OpLabel
-               OpReturnValue %m
+          %f = OpFunction %mat2v3float None %19
+         %21 = OpLabel
+         %23 = OpLoad %mat2v3float %m
+               OpReturnValue %23
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.wgsl
index f0a3182..a6cf4e6 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.wgsl
@@ -1,4 +1,4 @@
-let m = mat2x3(mat2x3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f));
+var<private> m = mat2x3(mat2x3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f));
 
 fn f() -> mat2x3<f32> {
   let m_1 = mat2x3(m);
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl
index dc7f65f..c13c5b1 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl
@@ -1,2 +1,2 @@
-let m = mat2x3(0.0, 1.0, 2.0,
-               3.0, 4.0, 5.0);
+var<private> m = mat2x3(0.0, 1.0, 2.0,
+                        3.0, 4.0, 5.0);
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.glsl
index 919400a..275e22b 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2x3 m = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f));
+mat2x3 m = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.hlsl
index fb12d01..c2d1be7 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+static float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.msl
index 443c61f..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.spvasm
index c4ce1bd..578716d 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 17
+; Bound: 19
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -20,10 +20,12 @@
     %float_4 = OpConstant %float 4
     %float_5 = OpConstant %float 5
          %11 = OpConstantComposite %v3float %float_3 %float_4 %float_5
-          %m = OpConstantComposite %mat2v3float %7 %11
+         %12 = OpConstantComposite %mat2v3float %7 %11
+%_ptr_Private_mat2v3float = OpTypePointer Private %mat2v3float
+          %m = OpVariable %_ptr_Private_mat2v3float Private %12
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %13
-         %16 = OpLabel
+         %15 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %15
+         %18 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.wgsl
index 0be516f..2dae43b 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat2x3(0.0, 1.0, 2.0, 3.0, 4.0, 5.0);
+var<private> m = mat2x3(0.0, 1.0, 2.0, 3.0, 4.0, 5.0);
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl
index 7107d4b..79031cb 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl
@@ -1,2 +1,2 @@
-let m = mat2x3(0.0f, 1.0f, 2.0f,
-               3.0f, 4.0f, 5.0f);
+var<private> m = mat2x3(0.0f, 1.0f, 2.0f,
+                        3.0f, 4.0f, 5.0f);
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.glsl
index 919400a..275e22b 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2x3 m = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f));
+mat2x3 m = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.hlsl
index fb12d01..c2d1be7 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+static float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.msl
index 443c61f..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.spvasm
index c4ce1bd..578716d 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 17
+; Bound: 19
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -20,10 +20,12 @@
     %float_4 = OpConstant %float 4
     %float_5 = OpConstant %float 5
          %11 = OpConstantComposite %v3float %float_3 %float_4 %float_5
-          %m = OpConstantComposite %mat2v3float %7 %11
+         %12 = OpConstantComposite %mat2v3float %7 %11
+%_ptr_Private_mat2v3float = OpTypePointer Private %mat2v3float
+          %m = OpVariable %_ptr_Private_mat2v3float Private %12
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %13
-         %16 = OpLabel
+         %15 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %15
+         %18 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.wgsl
index c5a27d6..d183723 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat2x3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f);
+var<private> m = mat2x3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f);
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl
index 24f8a6c..bb589a1 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl
@@ -1,2 +1,2 @@
-let m = mat2x3(vec3(0.0, 1.0, 2.0),
-               vec3(3.0, 4.0, 5.0));
+var<private> m = mat2x3(vec3(0.0, 1.0, 2.0),
+                        vec3(3.0, 4.0, 5.0));
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.glsl
index 919400a..275e22b 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2x3 m = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f));
+mat2x3 m = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.hlsl
index fb12d01..c2d1be7 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+static float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.msl
index 443c61f..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.spvasm
index c4ce1bd..578716d 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 17
+; Bound: 19
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -20,10 +20,12 @@
     %float_4 = OpConstant %float 4
     %float_5 = OpConstant %float 5
          %11 = OpConstantComposite %v3float %float_3 %float_4 %float_5
-          %m = OpConstantComposite %mat2v3float %7 %11
+         %12 = OpConstantComposite %mat2v3float %7 %11
+%_ptr_Private_mat2v3float = OpTypePointer Private %mat2v3float
+          %m = OpVariable %_ptr_Private_mat2v3float Private %12
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %13
-         %16 = OpLabel
+         %15 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %15
+         %18 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.wgsl
index a23b1e2..b194c30 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat2x3(vec3(0.0, 1.0, 2.0), vec3(3.0, 4.0, 5.0));
+var<private> m = mat2x3(vec3(0.0, 1.0, 2.0), vec3(3.0, 4.0, 5.0));
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl
index 5b8ed92..ab3d403 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl
@@ -1,2 +1,2 @@
-let m = mat2x3(vec3<f32>(0.0f, 1.0f, 2.0f),
-               vec3<f32>(3.0f, 4.0f, 5.0f));
+var<private> m = mat2x3(vec3<f32>(0.0f, 1.0f, 2.0f),
+                        vec3<f32>(3.0f, 4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.glsl
index 919400a..275e22b 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2x3 m = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f));
+mat2x3 m = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.hlsl
index fb12d01..c2d1be7 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+static float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.msl
index 443c61f..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.spvasm
index c4ce1bd..578716d 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 17
+; Bound: 19
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -20,10 +20,12 @@
     %float_4 = OpConstant %float 4
     %float_5 = OpConstant %float 5
          %11 = OpConstantComposite %v3float %float_3 %float_4 %float_5
-          %m = OpConstantComposite %mat2v3float %7 %11
+         %12 = OpConstantComposite %mat2v3float %7 %11
+%_ptr_Private_mat2v3float = OpTypePointer Private %mat2v3float
+          %m = OpVariable %_ptr_Private_mat2v3float Private %12
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %13
-         %16 = OpLabel
+         %15 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %15
+         %18 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.wgsl
index bbc2d2a..709c5a8 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat2x3(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f));
+var<private> m = mat2x3(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl b/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl
index 52d5139..e9b1825 100644
--- a/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl
@@ -1 +1 @@
-let m = mat2x3<f32>();
+var<private> m = mat2x3<f32>();
diff --git a/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.glsl
index 147f758..6d2c8f5 100644
--- a/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2x3 m = mat2x3(vec3(0.0f), vec3(0.0f));
+mat2x3 m = mat2x3(vec3(0.0f), vec3(0.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.hlsl
index c8959e9..3fe1f11 100644
--- a/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float2x3 m = float2x3((0.0f).xxx, (0.0f).xxx);
+static float2x3 m = float2x3((0.0f).xxx, (0.0f).xxx);
diff --git a/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.msl
index 05150a2..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2x3 m = float2x3(float3(0.0f), float3(0.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.spvasm
index c4d0912..ee69713 100644
--- a/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 9
+; Bound: 11
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -12,10 +12,12 @@
       %float = OpTypeFloat 32
     %v3float = OpTypeVector %float 3
 %mat2v3float = OpTypeMatrix %v3float 2
-          %m = OpConstantNull %mat2v3float
+          %4 = OpConstantNull %mat2v3float
+%_ptr_Private_mat2v3float = OpTypePointer Private %mat2v3float
+          %m = OpVariable %_ptr_Private_mat2v3float Private %4
        %void = OpTypeVoid
-          %5 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %5
-          %8 = OpLabel
+          %7 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %7
+         %10 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.wgsl
index 52d5139..e9b1825 100644
--- a/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat2x3<f32>();
+var<private> m = mat2x3<f32>();
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl
index 3d3f9c2..c8f8bc5 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl
@@ -1,5 +1,5 @@
-let m = mat2x4(mat2x4<f32>(0.0f, 1.0f, 2.0f, 3.0f,
-                           4.0f, 5.0f, 6.0f, 7.0f));
+var<private> m = mat2x4(mat2x4<f32>(0.0f, 1.0f, 2.0f, 3.0f,
+                                    4.0f, 5.0f, 6.0f, 7.0f));
 
 fn f() -> mat2x4<f32> {
     let m_1 = mat2x4(m);
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.glsl
index 4f30e2f..06eabf0 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.glsl
@@ -4,9 +4,9 @@
 void unused_entry_point() {
   return;
 }
-const mat2x4 m = mat2x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f));
+mat2x4 m = mat2x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f));
 mat2x4 f() {
-  mat2x4 m_1 = mat2x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f));
+  mat2x4 m_1 = mat2x4(m);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.hlsl
index 96e6b19..b37e3b7 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.hlsl
@@ -3,9 +3,9 @@
   return;
 }
 
-static const float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+static float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
 
 float2x4 f() {
-  const float2x4 m_1 = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+  const float2x4 m_1 = float2x4(m);
   return m_1;
 }
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.msl
index d3c4da9..63b4e2a 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.msl
@@ -1,10 +1,9 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
-
 float2x4 f() {
-  float2x4 const m_1 = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+  thread float2x4 tint_symbol = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+  float2x4 const m_1 = float2x4(tint_symbol);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.spvasm
index 7cab4d6..6dbb4ce 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 22
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -23,15 +23,18 @@
     %float_6 = OpConstant %float 6
     %float_7 = OpConstant %float 7
          %13 = OpConstantComposite %v4float %float_4 %float_5 %float_6 %float_7
-          %m = OpConstantComposite %mat2v4float %8 %13
+         %14 = OpConstantComposite %mat2v4float %8 %13
+%_ptr_Private_mat2v4float = OpTypePointer Private %mat2v4float
+          %m = OpVariable %_ptr_Private_mat2v4float Private %14
        %void = OpTypeVoid
-         %15 = OpTypeFunction %void
-         %19 = OpTypeFunction %mat2v4float
-%unused_entry_point = OpFunction %void None %15
-         %18 = OpLabel
+         %17 = OpTypeFunction %void
+         %21 = OpTypeFunction %mat2v4float
+%unused_entry_point = OpFunction %void None %17
+         %20 = OpLabel
                OpReturn
                OpFunctionEnd
-          %f = OpFunction %mat2v4float None %19
-         %21 = OpLabel
-               OpReturnValue %m
+          %f = OpFunction %mat2v4float None %21
+         %23 = OpLabel
+         %25 = OpLoad %mat2v4float %m
+               OpReturnValue %25
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.wgsl
index f31ac21..476ed2c 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.wgsl
@@ -1,4 +1,4 @@
-let m = mat2x4(mat2x4<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f));
+var<private> m = mat2x4(mat2x4<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f));
 
 fn f() -> mat2x4<f32> {
   let m_1 = mat2x4(m);
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl
index 56d25f5..a65308e 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl
@@ -1,2 +1,2 @@
-let m = mat2x4<f32>(0.0f, 1.0f, 2.0f, 3.0f,
-                    4.0f, 5.0f, 6.0f, 7.0f);
+var<private> m = mat2x4<f32>(0.0f, 1.0f, 2.0f, 3.0f,
+                             4.0f, 5.0f, 6.0f, 7.0f);
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.glsl
index 461bebd..15a4535 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2x4 m = mat2x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f));
+mat2x4 m = mat2x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.hlsl
index 5ed2b1b..7f63f53 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+static float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.msl
index b309bde..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.spvasm
index 39a2a21..c97b583 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 19
+; Bound: 21
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -22,10 +22,12 @@
     %float_6 = OpConstant %float 6
     %float_7 = OpConstant %float 7
          %13 = OpConstantComposite %v4float %float_4 %float_5 %float_6 %float_7
-          %m = OpConstantComposite %mat2v4float %8 %13
+         %14 = OpConstantComposite %mat2v4float %8 %13
+%_ptr_Private_mat2v4float = OpTypePointer Private %mat2v4float
+          %m = OpVariable %_ptr_Private_mat2v4float Private %14
        %void = OpTypeVoid
-         %15 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %15
-         %18 = OpLabel
+         %17 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %17
+         %20 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.wgsl
index f342196..0eea600 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat2x4<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f);
+var<private> m = mat2x4<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f);
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl
index 5465c36..00a8d11 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl
@@ -1,2 +1,2 @@
-let m = mat2x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f),
-                    vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f));
+var<private> m = mat2x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f),
+                             vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.glsl
index 461bebd..15a4535 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2x4 m = mat2x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f));
+mat2x4 m = mat2x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.hlsl
index 5ed2b1b..7f63f53 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+static float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.msl
index b309bde..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.spvasm
index 39a2a21..c97b583 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 19
+; Bound: 21
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -22,10 +22,12 @@
     %float_6 = OpConstant %float 6
     %float_7 = OpConstant %float 7
          %13 = OpConstantComposite %v4float %float_4 %float_5 %float_6 %float_7
-          %m = OpConstantComposite %mat2v4float %8 %13
+         %14 = OpConstantComposite %mat2v4float %8 %13
+%_ptr_Private_mat2v4float = OpTypePointer Private %mat2v4float
+          %m = OpVariable %_ptr_Private_mat2v4float Private %14
        %void = OpTypeVoid
-         %15 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %15
-         %18 = OpLabel
+         %17 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %17
+         %20 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.wgsl
index be987bb..760becb 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat2x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f));
+var<private> m = mat2x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl
index cc6f3fd..345e097 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl
@@ -1,5 +1,5 @@
-let m = mat2x4(mat2x4(0.0f, 1.0f, 2.0f, 3.0f,
-                      4.0f, 5.0f, 6.0f, 7.0f));
+var<private> m = mat2x4(mat2x4(0.0f, 1.0f, 2.0f, 3.0f,
+                               4.0f, 5.0f, 6.0f, 7.0f));
 
 fn f() -> mat2x4<f32> {
     let m_1 = mat2x4(m);
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.glsl
index 4f30e2f..06eabf0 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.glsl
@@ -4,9 +4,9 @@
 void unused_entry_point() {
   return;
 }
-const mat2x4 m = mat2x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f));
+mat2x4 m = mat2x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f));
 mat2x4 f() {
-  mat2x4 m_1 = mat2x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f));
+  mat2x4 m_1 = mat2x4(m);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.hlsl
index 96e6b19..b37e3b7 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.hlsl
@@ -3,9 +3,9 @@
   return;
 }
 
-static const float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+static float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
 
 float2x4 f() {
-  const float2x4 m_1 = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+  const float2x4 m_1 = float2x4(m);
   return m_1;
 }
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.msl
index d3c4da9..63b4e2a 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.msl
@@ -1,10 +1,9 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
-
 float2x4 f() {
-  float2x4 const m_1 = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+  thread float2x4 tint_symbol = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+  float2x4 const m_1 = float2x4(tint_symbol);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.spvasm
index 7cab4d6..6dbb4ce 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 22
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -23,15 +23,18 @@
     %float_6 = OpConstant %float 6
     %float_7 = OpConstant %float 7
          %13 = OpConstantComposite %v4float %float_4 %float_5 %float_6 %float_7
-          %m = OpConstantComposite %mat2v4float %8 %13
+         %14 = OpConstantComposite %mat2v4float %8 %13
+%_ptr_Private_mat2v4float = OpTypePointer Private %mat2v4float
+          %m = OpVariable %_ptr_Private_mat2v4float Private %14
        %void = OpTypeVoid
-         %15 = OpTypeFunction %void
-         %19 = OpTypeFunction %mat2v4float
-%unused_entry_point = OpFunction %void None %15
-         %18 = OpLabel
+         %17 = OpTypeFunction %void
+         %21 = OpTypeFunction %mat2v4float
+%unused_entry_point = OpFunction %void None %17
+         %20 = OpLabel
                OpReturn
                OpFunctionEnd
-          %f = OpFunction %mat2v4float None %19
-         %21 = OpLabel
-               OpReturnValue %m
+          %f = OpFunction %mat2v4float None %21
+         %23 = OpLabel
+         %25 = OpLoad %mat2v4float %m
+               OpReturnValue %25
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.wgsl
index 644d882..3e388e1 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.wgsl
@@ -1,4 +1,4 @@
-let m = mat2x4(mat2x4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f));
+var<private> m = mat2x4(mat2x4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f));
 
 fn f() -> mat2x4<f32> {
   let m_1 = mat2x4(m);
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl
index 81abe9f..0fb3201 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl
@@ -1,2 +1,2 @@
-let m = mat2x4(0.0, 1.0, 2.0, 3.0,
-               4.0, 5.0, 6.0, 7.0);
+var<private> m = mat2x4(0.0, 1.0, 2.0, 3.0,
+                        4.0, 5.0, 6.0, 7.0);
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.glsl
index 461bebd..15a4535 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2x4 m = mat2x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f));
+mat2x4 m = mat2x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.hlsl
index 5ed2b1b..7f63f53 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+static float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.msl
index b309bde..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.spvasm
index 39a2a21..c97b583 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 19
+; Bound: 21
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -22,10 +22,12 @@
     %float_6 = OpConstant %float 6
     %float_7 = OpConstant %float 7
          %13 = OpConstantComposite %v4float %float_4 %float_5 %float_6 %float_7
-          %m = OpConstantComposite %mat2v4float %8 %13
+         %14 = OpConstantComposite %mat2v4float %8 %13
+%_ptr_Private_mat2v4float = OpTypePointer Private %mat2v4float
+          %m = OpVariable %_ptr_Private_mat2v4float Private %14
        %void = OpTypeVoid
-         %15 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %15
-         %18 = OpLabel
+         %17 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %17
+         %20 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.wgsl
index bcb4dfe..7103b47 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat2x4(0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0);
+var<private> m = mat2x4(0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0);
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl
index 394b079..ea9a9c4 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl
@@ -1,2 +1,2 @@
-let m = mat2x4(0.0f, 1.0f, 2.0f, 3.0f,
-               4.0f, 5.0f, 6.0f, 7.0f);
+var<private> m = mat2x4(0.0f, 1.0f, 2.0f, 3.0f,
+                        4.0f, 5.0f, 6.0f, 7.0f);
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.glsl
index 461bebd..15a4535 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2x4 m = mat2x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f));
+mat2x4 m = mat2x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.hlsl
index 5ed2b1b..7f63f53 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+static float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.msl
index b309bde..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.spvasm
index 39a2a21..c97b583 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 19
+; Bound: 21
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -22,10 +22,12 @@
     %float_6 = OpConstant %float 6
     %float_7 = OpConstant %float 7
          %13 = OpConstantComposite %v4float %float_4 %float_5 %float_6 %float_7
-          %m = OpConstantComposite %mat2v4float %8 %13
+         %14 = OpConstantComposite %mat2v4float %8 %13
+%_ptr_Private_mat2v4float = OpTypePointer Private %mat2v4float
+          %m = OpVariable %_ptr_Private_mat2v4float Private %14
        %void = OpTypeVoid
-         %15 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %15
-         %18 = OpLabel
+         %17 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %17
+         %20 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.wgsl
index dc53810..7e04fcf 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat2x4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f);
+var<private> m = mat2x4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f);
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl
index e391fbe..db96125 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl
@@ -1,2 +1,2 @@
-let m = mat2x4(vec4(0.0, 1.0, 2.0, 3.0),
-               vec4(4.0, 5.0, 6.0, 7.0));
+var<private> m = mat2x4(vec4(0.0, 1.0, 2.0, 3.0),
+                        vec4(4.0, 5.0, 6.0, 7.0));
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.glsl
index 461bebd..15a4535 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2x4 m = mat2x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f));
+mat2x4 m = mat2x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.hlsl
index 5ed2b1b..7f63f53 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+static float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.msl
index b309bde..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.spvasm
index 39a2a21..c97b583 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 19
+; Bound: 21
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -22,10 +22,12 @@
     %float_6 = OpConstant %float 6
     %float_7 = OpConstant %float 7
          %13 = OpConstantComposite %v4float %float_4 %float_5 %float_6 %float_7
-          %m = OpConstantComposite %mat2v4float %8 %13
+         %14 = OpConstantComposite %mat2v4float %8 %13
+%_ptr_Private_mat2v4float = OpTypePointer Private %mat2v4float
+          %m = OpVariable %_ptr_Private_mat2v4float Private %14
        %void = OpTypeVoid
-         %15 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %15
-         %18 = OpLabel
+         %17 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %17
+         %20 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.wgsl
index 80bb8ca..7f64fdb 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat2x4(vec4(0.0, 1.0, 2.0, 3.0), vec4(4.0, 5.0, 6.0, 7.0));
+var<private> m = mat2x4(vec4(0.0, 1.0, 2.0, 3.0), vec4(4.0, 5.0, 6.0, 7.0));
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl
index 4a9db50..946f9ad 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl
@@ -1,2 +1,2 @@
-let m = mat2x4(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f),
-               vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f));
+var<private> m = mat2x4(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f),
+                        vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.glsl
index 461bebd..15a4535 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2x4 m = mat2x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f));
+mat2x4 m = mat2x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.hlsl
index 5ed2b1b..7f63f53 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+static float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.msl
index b309bde..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.spvasm
index 39a2a21..c97b583 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 19
+; Bound: 21
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -22,10 +22,12 @@
     %float_6 = OpConstant %float 6
     %float_7 = OpConstant %float 7
          %13 = OpConstantComposite %v4float %float_4 %float_5 %float_6 %float_7
-          %m = OpConstantComposite %mat2v4float %8 %13
+         %14 = OpConstantComposite %mat2v4float %8 %13
+%_ptr_Private_mat2v4float = OpTypePointer Private %mat2v4float
+          %m = OpVariable %_ptr_Private_mat2v4float Private %14
        %void = OpTypeVoid
-         %15 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %15
-         %18 = OpLabel
+         %17 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %17
+         %20 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.wgsl
index 99f104b..5e4e09a 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat2x4(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f));
+var<private> m = mat2x4(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl b/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl
index 6748d70..f9c67c8 100644
--- a/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl
@@ -1 +1 @@
-let m = mat2x4<f32>();
+var<private> m = mat2x4<f32>();
diff --git a/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.glsl
index 09ae675..addaec5 100644
--- a/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2x4 m = mat2x4(vec4(0.0f), vec4(0.0f));
+mat2x4 m = mat2x4(vec4(0.0f), vec4(0.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.hlsl
index 2879c88..aaeb1e0 100644
--- a/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float2x4 m = float2x4((0.0f).xxxx, (0.0f).xxxx);
+static float2x4 m = float2x4((0.0f).xxxx, (0.0f).xxxx);
diff --git a/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.msl
index 035e80e..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2x4 m = float2x4(float4(0.0f), float4(0.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.spvasm
index b4edef2..edf312f 100644
--- a/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 9
+; Bound: 11
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -12,10 +12,12 @@
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
 %mat2v4float = OpTypeMatrix %v4float 2
-          %m = OpConstantNull %mat2v4float
+          %4 = OpConstantNull %mat2v4float
+%_ptr_Private_mat2v4float = OpTypePointer Private %mat2v4float
+          %m = OpVariable %_ptr_Private_mat2v4float Private %4
        %void = OpTypeVoid
-          %5 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %5
-          %8 = OpLabel
+          %7 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %7
+         %10 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.wgsl
index 6748d70..f9c67c8 100644
--- a/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat2x4<f32>();
+var<private> m = mat2x4<f32>();
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl
index 7a14231..53bc3aa 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl
@@ -1,6 +1,6 @@
-let m = mat3x2(mat3x2<f32>(0.0f, 1.0f,
-                           2.0f, 3.0f,
-                           4.0f, 5.0f));
+var<private> m = mat3x2(mat3x2<f32>(0.0f, 1.0f,
+                                    2.0f, 3.0f,
+                                    4.0f, 5.0f));
 
 fn f() -> mat3x2<f32> {
     let m_1 = mat3x2(m);
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.glsl
index e067774..076d424 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.glsl
@@ -4,9 +4,9 @@
 void unused_entry_point() {
   return;
 }
-const mat3x2 m = mat3x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f));
+mat3x2 m = mat3x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f));
 mat3x2 f() {
-  mat3x2 m_1 = mat3x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f));
+  mat3x2 m_1 = mat3x2(m);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.hlsl
index 5897ac6..6a51b66 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.hlsl
@@ -3,9 +3,9 @@
   return;
 }
 
-static const float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+static float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
 
 float3x2 f() {
-  const float3x2 m_1 = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+  const float3x2 m_1 = float3x2(m);
   return m_1;
 }
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.msl
index 43ec396..41fb71e 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.msl
@@ -1,10 +1,9 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
-
 float3x2 f() {
-  float3x2 const m_1 = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+  thread float3x2 tint_symbol = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+  float3x2 const m_1 = float3x2(tint_symbol);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.spvasm
index 95ffb2b..2c46731 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 21
+; Bound: 25
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -22,15 +22,18 @@
     %float_4 = OpConstant %float 4
     %float_5 = OpConstant %float 5
          %12 = OpConstantComposite %v2float %float_4 %float_5
-          %m = OpConstantComposite %mat3v2float %6 %9 %12
+         %13 = OpConstantComposite %mat3v2float %6 %9 %12
+%_ptr_Private_mat3v2float = OpTypePointer Private %mat3v2float
+          %m = OpVariable %_ptr_Private_mat3v2float Private %13
        %void = OpTypeVoid
-         %14 = OpTypeFunction %void
-         %18 = OpTypeFunction %mat3v2float
-%unused_entry_point = OpFunction %void None %14
-         %17 = OpLabel
+         %16 = OpTypeFunction %void
+         %20 = OpTypeFunction %mat3v2float
+%unused_entry_point = OpFunction %void None %16
+         %19 = OpLabel
                OpReturn
                OpFunctionEnd
-          %f = OpFunction %mat3v2float None %18
-         %20 = OpLabel
-               OpReturnValue %m
+          %f = OpFunction %mat3v2float None %20
+         %22 = OpLabel
+         %24 = OpLoad %mat3v2float %m
+               OpReturnValue %24
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.wgsl
index 06f3edf..1be72c6 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.wgsl
@@ -1,4 +1,4 @@
-let m = mat3x2(mat3x2<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f));
+var<private> m = mat3x2(mat3x2<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f));
 
 fn f() -> mat3x2<f32> {
   let m_1 = mat3x2(m);
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl
index b6fb489..e724832 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl
@@ -1,3 +1,3 @@
-let m = mat3x2<f32>(0.0f, 1.0f,
-                    2.0f, 3.0f,
-                    4.0f, 5.0f);
+var<private> m = mat3x2<f32>(0.0f, 1.0f,
+                             2.0f, 3.0f,
+                             4.0f, 5.0f);
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.glsl
index 1447967..3df809b 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3x2 m = mat3x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f));
+mat3x2 m = mat3x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.hlsl
index 27568ed..3c86bed 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+static float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.msl
index ae7f33c..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.spvasm
index ba16661..cfc645f 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 18
+; Bound: 20
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -21,10 +21,12 @@
     %float_4 = OpConstant %float 4
     %float_5 = OpConstant %float 5
          %12 = OpConstantComposite %v2float %float_4 %float_5
-          %m = OpConstantComposite %mat3v2float %6 %9 %12
+         %13 = OpConstantComposite %mat3v2float %6 %9 %12
+%_ptr_Private_mat3v2float = OpTypePointer Private %mat3v2float
+          %m = OpVariable %_ptr_Private_mat3v2float Private %13
        %void = OpTypeVoid
-         %14 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %14
-         %17 = OpLabel
+         %16 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %16
+         %19 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.wgsl
index c1034f7..14bc7c9 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat3x2<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f);
+var<private> m = mat3x2<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f);
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl
index 6d080cb..9abe994 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl
@@ -1,3 +1,3 @@
-let m = mat3x2<f32>(vec2<f32>(0.0f, 1.0f),
-                    vec2<f32>(2.0f, 3.0f),
-                    vec2<f32>(4.0f, 5.0f));
+var<private> m = mat3x2<f32>(vec2<f32>(0.0f, 1.0f),
+                             vec2<f32>(2.0f, 3.0f),
+                             vec2<f32>(4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.glsl
index 1447967..3df809b 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3x2 m = mat3x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f));
+mat3x2 m = mat3x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.hlsl
index 27568ed..3c86bed 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+static float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.msl
index ae7f33c..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.spvasm
index ba16661..cfc645f 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 18
+; Bound: 20
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -21,10 +21,12 @@
     %float_4 = OpConstant %float 4
     %float_5 = OpConstant %float 5
          %12 = OpConstantComposite %v2float %float_4 %float_5
-          %m = OpConstantComposite %mat3v2float %6 %9 %12
+         %13 = OpConstantComposite %mat3v2float %6 %9 %12
+%_ptr_Private_mat3v2float = OpTypePointer Private %mat3v2float
+          %m = OpVariable %_ptr_Private_mat3v2float Private %13
        %void = OpTypeVoid
-         %14 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %14
-         %17 = OpLabel
+         %16 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %16
+         %19 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.wgsl
index 5ba17fb..6e2dea9 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat3x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f), vec2<f32>(4.0f, 5.0f));
+var<private> m = mat3x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f), vec2<f32>(4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl
index d77e83b..73d3fd1 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl
@@ -1,6 +1,6 @@
-let m = mat3x2(mat3x2(0.0f, 1.0f,
-                      2.0f, 3.0f,
-                      4.0f, 5.0f));
+var<private> m = mat3x2(mat3x2(0.0f, 1.0f,
+                               2.0f, 3.0f,
+                               4.0f, 5.0f));
 
 fn f() -> mat3x2<f32> {
     let m_1 = mat3x2(m);
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.glsl
index e067774..076d424 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.glsl
@@ -4,9 +4,9 @@
 void unused_entry_point() {
   return;
 }
-const mat3x2 m = mat3x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f));
+mat3x2 m = mat3x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f));
 mat3x2 f() {
-  mat3x2 m_1 = mat3x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f));
+  mat3x2 m_1 = mat3x2(m);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.hlsl
index 5897ac6..6a51b66 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.hlsl
@@ -3,9 +3,9 @@
   return;
 }
 
-static const float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+static float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
 
 float3x2 f() {
-  const float3x2 m_1 = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+  const float3x2 m_1 = float3x2(m);
   return m_1;
 }
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.msl
index 43ec396..41fb71e 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.msl
@@ -1,10 +1,9 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
-
 float3x2 f() {
-  float3x2 const m_1 = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+  thread float3x2 tint_symbol = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+  float3x2 const m_1 = float3x2(tint_symbol);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.spvasm
index 95ffb2b..2c46731 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 21
+; Bound: 25
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -22,15 +22,18 @@
     %float_4 = OpConstant %float 4
     %float_5 = OpConstant %float 5
          %12 = OpConstantComposite %v2float %float_4 %float_5
-          %m = OpConstantComposite %mat3v2float %6 %9 %12
+         %13 = OpConstantComposite %mat3v2float %6 %9 %12
+%_ptr_Private_mat3v2float = OpTypePointer Private %mat3v2float
+          %m = OpVariable %_ptr_Private_mat3v2float Private %13
        %void = OpTypeVoid
-         %14 = OpTypeFunction %void
-         %18 = OpTypeFunction %mat3v2float
-%unused_entry_point = OpFunction %void None %14
-         %17 = OpLabel
+         %16 = OpTypeFunction %void
+         %20 = OpTypeFunction %mat3v2float
+%unused_entry_point = OpFunction %void None %16
+         %19 = OpLabel
                OpReturn
                OpFunctionEnd
-          %f = OpFunction %mat3v2float None %18
-         %20 = OpLabel
-               OpReturnValue %m
+          %f = OpFunction %mat3v2float None %20
+         %22 = OpLabel
+         %24 = OpLoad %mat3v2float %m
+               OpReturnValue %24
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.wgsl
index e16eab4..bc65cbb 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.wgsl
@@ -1,4 +1,4 @@
-let m = mat3x2(mat3x2(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f));
+var<private> m = mat3x2(mat3x2(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f));
 
 fn f() -> mat3x2<f32> {
   let m_1 = mat3x2(m);
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl
index 6fbe3b8..9507f0e 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl
@@ -1,3 +1,3 @@
-let m = mat3x2(0.0, 1.0,
-               2.0, 3.0,
-               4.0, 5.0);
+var<private> m = mat3x2(0.0, 1.0,
+                        2.0, 3.0,
+                        4.0, 5.0);
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.glsl
index 1447967..3df809b 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3x2 m = mat3x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f));
+mat3x2 m = mat3x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.hlsl
index 27568ed..3c86bed 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+static float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.msl
index ae7f33c..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.spvasm
index ba16661..cfc645f 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 18
+; Bound: 20
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -21,10 +21,12 @@
     %float_4 = OpConstant %float 4
     %float_5 = OpConstant %float 5
          %12 = OpConstantComposite %v2float %float_4 %float_5
-          %m = OpConstantComposite %mat3v2float %6 %9 %12
+         %13 = OpConstantComposite %mat3v2float %6 %9 %12
+%_ptr_Private_mat3v2float = OpTypePointer Private %mat3v2float
+          %m = OpVariable %_ptr_Private_mat3v2float Private %13
        %void = OpTypeVoid
-         %14 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %14
-         %17 = OpLabel
+         %16 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %16
+         %19 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.wgsl
index 4d48f59..28d3915 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat3x2(0.0, 1.0, 2.0, 3.0, 4.0, 5.0);
+var<private> m = mat3x2(0.0, 1.0, 2.0, 3.0, 4.0, 5.0);
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl
index f64977f..e5f9de6 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl
@@ -1,3 +1,3 @@
-let m = mat3x2(0.0f, 1.0f,
-               2.0f, 3.0f,
-               4.0f, 5.0f);
+var<private> m = mat3x2(0.0f, 1.0f,
+                        2.0f, 3.0f,
+                        4.0f, 5.0f);
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.glsl
index 1447967..3df809b 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3x2 m = mat3x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f));
+mat3x2 m = mat3x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.hlsl
index 27568ed..3c86bed 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+static float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.msl
index ae7f33c..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.spvasm
index ba16661..cfc645f 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 18
+; Bound: 20
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -21,10 +21,12 @@
     %float_4 = OpConstant %float 4
     %float_5 = OpConstant %float 5
          %12 = OpConstantComposite %v2float %float_4 %float_5
-          %m = OpConstantComposite %mat3v2float %6 %9 %12
+         %13 = OpConstantComposite %mat3v2float %6 %9 %12
+%_ptr_Private_mat3v2float = OpTypePointer Private %mat3v2float
+          %m = OpVariable %_ptr_Private_mat3v2float Private %13
        %void = OpTypeVoid
-         %14 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %14
-         %17 = OpLabel
+         %16 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %16
+         %19 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.wgsl
index f418892..045b91d 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat3x2(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f);
+var<private> m = mat3x2(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f);
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl
index 990b243..bb77362 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl
@@ -1,3 +1,3 @@
-let m = mat3x2(vec2(0.0, 1.0),
-               vec2(2.0, 3.0),
-               vec2(4.0, 5.0));
+var<private> m = mat3x2(vec2(0.0, 1.0),
+                        vec2(2.0, 3.0),
+                        vec2(4.0, 5.0));
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.glsl
index 1447967..3df809b 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3x2 m = mat3x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f));
+mat3x2 m = mat3x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.hlsl
index 27568ed..3c86bed 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+static float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.msl
index ae7f33c..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.spvasm
index ba16661..cfc645f 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 18
+; Bound: 20
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -21,10 +21,12 @@
     %float_4 = OpConstant %float 4
     %float_5 = OpConstant %float 5
          %12 = OpConstantComposite %v2float %float_4 %float_5
-          %m = OpConstantComposite %mat3v2float %6 %9 %12
+         %13 = OpConstantComposite %mat3v2float %6 %9 %12
+%_ptr_Private_mat3v2float = OpTypePointer Private %mat3v2float
+          %m = OpVariable %_ptr_Private_mat3v2float Private %13
        %void = OpTypeVoid
-         %14 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %14
-         %17 = OpLabel
+         %16 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %16
+         %19 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.wgsl
index b8ff25a..4cb4236 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat3x2(vec2(0.0, 1.0), vec2(2.0, 3.0), vec2(4.0, 5.0));
+var<private> m = mat3x2(vec2(0.0, 1.0), vec2(2.0, 3.0), vec2(4.0, 5.0));
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl
index 287ee1b..029a9b0 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl
@@ -1,3 +1,3 @@
-let m = mat3x2(vec2<f32>(0.0f, 1.0f),
-               vec2<f32>(2.0f, 3.0f),
-               vec2<f32>(4.0f, 5.0f));
+var<private> m = mat3x2(vec2<f32>(0.0f, 1.0f),
+                        vec2<f32>(2.0f, 3.0f),
+                        vec2<f32>(4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.glsl
index 1447967..3df809b 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3x2 m = mat3x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f));
+mat3x2 m = mat3x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.hlsl
index 27568ed..3c86bed 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+static float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.msl
index ae7f33c..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.spvasm
index ba16661..cfc645f 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 18
+; Bound: 20
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -21,10 +21,12 @@
     %float_4 = OpConstant %float 4
     %float_5 = OpConstant %float 5
          %12 = OpConstantComposite %v2float %float_4 %float_5
-          %m = OpConstantComposite %mat3v2float %6 %9 %12
+         %13 = OpConstantComposite %mat3v2float %6 %9 %12
+%_ptr_Private_mat3v2float = OpTypePointer Private %mat3v2float
+          %m = OpVariable %_ptr_Private_mat3v2float Private %13
        %void = OpTypeVoid
-         %14 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %14
-         %17 = OpLabel
+         %16 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %16
+         %19 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.wgsl
index 913dd6b..d813053 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat3x2(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f), vec2<f32>(4.0f, 5.0f));
+var<private> m = mat3x2(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f), vec2<f32>(4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl b/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl
index 559c180..817cb6c 100644
--- a/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl
@@ -1 +1 @@
-let m = mat3x2<f32>();
+var<private> m = mat3x2<f32>();
diff --git a/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.glsl
index 9ecf735..809c79a 100644
--- a/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3x2 m = mat3x2(vec2(0.0f), vec2(0.0f), vec2(0.0f));
+mat3x2 m = mat3x2(vec2(0.0f), vec2(0.0f), vec2(0.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.hlsl
index a4755f3..b279d96 100644
--- a/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float3x2 m = float3x2((0.0f).xx, (0.0f).xx, (0.0f).xx);
+static float3x2 m = float3x2((0.0f).xx, (0.0f).xx, (0.0f).xx);
diff --git a/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.msl
index 1dc48eb..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3x2 m = float3x2(float2(0.0f), float2(0.0f), float2(0.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.spvasm
index 30f1d27..e4bc4d5 100644
--- a/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 9
+; Bound: 11
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -12,10 +12,12 @@
       %float = OpTypeFloat 32
     %v2float = OpTypeVector %float 2
 %mat3v2float = OpTypeMatrix %v2float 3
-          %m = OpConstantNull %mat3v2float
+          %4 = OpConstantNull %mat3v2float
+%_ptr_Private_mat3v2float = OpTypePointer Private %mat3v2float
+          %m = OpVariable %_ptr_Private_mat3v2float Private %4
        %void = OpTypeVoid
-          %5 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %5
-          %8 = OpLabel
+          %7 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %7
+         %10 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.wgsl
index 559c180..817cb6c 100644
--- a/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat3x2<f32>();
+var<private> m = mat3x2<f32>();
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl
index 9f57499..f3b62f5 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl
@@ -1,6 +1,6 @@
-let m = mat3x3(mat3x3<f32>(0.0f, 1.0f, 2.0f,
-                           3.0f, 4.0f, 5.0f,
-                           6.0f, 7.0f, 8.0f));
+var<private> m = mat3x3(mat3x3<f32>(0.0f, 1.0f, 2.0f,
+                                    3.0f, 4.0f, 5.0f,
+                                    6.0f, 7.0f, 8.0f));
 
 fn f() -> mat3x3<f32> {
     let m_1 = mat3x3(m);
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.glsl
index e3e750e..6bb27b8 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.glsl
@@ -4,9 +4,9 @@
 void unused_entry_point() {
   return;
 }
-const mat3 m = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f));
+mat3 m = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f));
 mat3 f() {
-  mat3 m_1 = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f));
+  mat3 m_1 = mat3(m);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.hlsl
index 1795dfb..2d4c4b2 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.hlsl
@@ -3,9 +3,9 @@
   return;
 }
 
-static const float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+static float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
 
 float3x3 f() {
-  const float3x3 m_1 = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+  const float3x3 m_1 = float3x3(m);
   return m_1;
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.msl
index f6a7b59..d19a026 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.msl
@@ -1,10 +1,9 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
-
 float3x3 f() {
-  float3x3 const m_1 = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+  thread float3x3 tint_symbol = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+  float3x3 const m_1 = float3x3(tint_symbol);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.spvasm
index d213c99..4fe3bbd 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 24
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -25,15 +25,18 @@
     %float_7 = OpConstant %float 7
     %float_8 = OpConstant %float 8
          %15 = OpConstantComposite %v3float %float_6 %float_7 %float_8
-          %m = OpConstantComposite %mat3v3float %7 %11 %15
+         %16 = OpConstantComposite %mat3v3float %7 %11 %15
+%_ptr_Private_mat3v3float = OpTypePointer Private %mat3v3float
+          %m = OpVariable %_ptr_Private_mat3v3float Private %16
        %void = OpTypeVoid
-         %17 = OpTypeFunction %void
-         %21 = OpTypeFunction %mat3v3float
-%unused_entry_point = OpFunction %void None %17
-         %20 = OpLabel
+         %19 = OpTypeFunction %void
+         %23 = OpTypeFunction %mat3v3float
+%unused_entry_point = OpFunction %void None %19
+         %22 = OpLabel
                OpReturn
                OpFunctionEnd
-          %f = OpFunction %mat3v3float None %21
-         %23 = OpLabel
-               OpReturnValue %m
+          %f = OpFunction %mat3v3float None %23
+         %25 = OpLabel
+         %27 = OpLoad %mat3v3float %m
+               OpReturnValue %27
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.wgsl
index 4ed58da..028783d 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.wgsl
@@ -1,4 +1,4 @@
-let m = mat3x3(mat3x3<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f));
+var<private> m = mat3x3(mat3x3<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f));
 
 fn f() -> mat3x3<f32> {
   let m_1 = mat3x3(m);
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl
index 33d7b14..1d80d69 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl
@@ -1,3 +1,3 @@
-let m = mat3x3<f32>(0.0f, 1.0f, 2.0f,
-                    3.0f, 4.0f, 5.0f,
-                    6.0f, 7.0f, 8.0f);
+var<private> m = mat3x3<f32>(0.0f, 1.0f, 2.0f,
+                             3.0f, 4.0f, 5.0f,
+                             6.0f, 7.0f, 8.0f);
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.glsl
index f4631cb..31b0b4a 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3 m = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f));
+mat3 m = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.hlsl
index c35ca2a..65b0c98 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+static float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.msl
index 2635df5..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.spvasm
index 16290c0..c0f68aa 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 21
+; Bound: 23
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -24,10 +24,12 @@
     %float_7 = OpConstant %float 7
     %float_8 = OpConstant %float 8
          %15 = OpConstantComposite %v3float %float_6 %float_7 %float_8
-          %m = OpConstantComposite %mat3v3float %7 %11 %15
+         %16 = OpConstantComposite %mat3v3float %7 %11 %15
+%_ptr_Private_mat3v3float = OpTypePointer Private %mat3v3float
+          %m = OpVariable %_ptr_Private_mat3v3float Private %16
        %void = OpTypeVoid
-         %17 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %17
-         %20 = OpLabel
+         %19 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %19
+         %22 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.wgsl
index 033c8f6..d1ef960 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat3x3<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f);
+var<private> m = mat3x3<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f);
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl
index cb6ac10..8a1972e 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl
@@ -1,3 +1,3 @@
-let m = mat3x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f),
-                    vec3<f32>(3.0f, 4.0f, 5.0f),
-                    vec3<f32>(6.0f, 7.0f, 8.0f));
+var<private> m = mat3x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f),
+                             vec3<f32>(3.0f, 4.0f, 5.0f),
+                             vec3<f32>(6.0f, 7.0f, 8.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.glsl
index f4631cb..31b0b4a 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3 m = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f));
+mat3 m = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.hlsl
index c35ca2a..65b0c98 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+static float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.msl
index 2635df5..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.spvasm
index 16290c0..c0f68aa 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 21
+; Bound: 23
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -24,10 +24,12 @@
     %float_7 = OpConstant %float 7
     %float_8 = OpConstant %float 8
          %15 = OpConstantComposite %v3float %float_6 %float_7 %float_8
-          %m = OpConstantComposite %mat3v3float %7 %11 %15
+         %16 = OpConstantComposite %mat3v3float %7 %11 %15
+%_ptr_Private_mat3v3float = OpTypePointer Private %mat3v3float
+          %m = OpVariable %_ptr_Private_mat3v3float Private %16
        %void = OpTypeVoid
-         %17 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %17
-         %20 = OpLabel
+         %19 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %19
+         %22 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.wgsl
index 9ac30b5..914a6a7 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat3x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f));
+var<private> m = mat3x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl
index d1792d1..b06cadc 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl
@@ -1,6 +1,6 @@
-let m = mat3x3(mat3x3(0.0f, 1.0f, 2.0f,
-                      3.0f, 4.0f, 5.0f,
-                      6.0f, 7.0f, 8.0f));
+var<private> m = mat3x3(mat3x3(0.0f, 1.0f, 2.0f,
+                               3.0f, 4.0f, 5.0f,
+                               6.0f, 7.0f, 8.0f));
 
 fn f() -> mat3x3<f32> {
     let m_1 = mat3x3(m);
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.glsl
index e3e750e..6bb27b8 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.glsl
@@ -4,9 +4,9 @@
 void unused_entry_point() {
   return;
 }
-const mat3 m = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f));
+mat3 m = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f));
 mat3 f() {
-  mat3 m_1 = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f));
+  mat3 m_1 = mat3(m);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.hlsl
index 1795dfb..2d4c4b2 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.hlsl
@@ -3,9 +3,9 @@
   return;
 }
 
-static const float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+static float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
 
 float3x3 f() {
-  const float3x3 m_1 = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+  const float3x3 m_1 = float3x3(m);
   return m_1;
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.msl
index f6a7b59..d19a026 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.msl
@@ -1,10 +1,9 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
-
 float3x3 f() {
-  float3x3 const m_1 = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+  thread float3x3 tint_symbol = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+  float3x3 const m_1 = float3x3(tint_symbol);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.spvasm
index d213c99..4fe3bbd 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 24
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -25,15 +25,18 @@
     %float_7 = OpConstant %float 7
     %float_8 = OpConstant %float 8
          %15 = OpConstantComposite %v3float %float_6 %float_7 %float_8
-          %m = OpConstantComposite %mat3v3float %7 %11 %15
+         %16 = OpConstantComposite %mat3v3float %7 %11 %15
+%_ptr_Private_mat3v3float = OpTypePointer Private %mat3v3float
+          %m = OpVariable %_ptr_Private_mat3v3float Private %16
        %void = OpTypeVoid
-         %17 = OpTypeFunction %void
-         %21 = OpTypeFunction %mat3v3float
-%unused_entry_point = OpFunction %void None %17
-         %20 = OpLabel
+         %19 = OpTypeFunction %void
+         %23 = OpTypeFunction %mat3v3float
+%unused_entry_point = OpFunction %void None %19
+         %22 = OpLabel
                OpReturn
                OpFunctionEnd
-          %f = OpFunction %mat3v3float None %21
-         %23 = OpLabel
-               OpReturnValue %m
+          %f = OpFunction %mat3v3float None %23
+         %25 = OpLabel
+         %27 = OpLoad %mat3v3float %m
+               OpReturnValue %27
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.wgsl
index 6bf1918..03f3cd0 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.wgsl
@@ -1,4 +1,4 @@
-let m = mat3x3(mat3x3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f));
+var<private> m = mat3x3(mat3x3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f));
 
 fn f() -> mat3x3<f32> {
   let m_1 = mat3x3(m);
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl
index ecdafe7..cfb9789 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl
@@ -1,3 +1,3 @@
-let m = mat3x3(0.0, 1.0, 2.0,
-               3.0, 4.0, 5.0,
-               6.0, 7.0, 8.0);
+var<private> m = mat3x3(0.0, 1.0, 2.0,
+                        3.0, 4.0, 5.0,
+                        6.0, 7.0, 8.0);
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.glsl
index f4631cb..31b0b4a 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3 m = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f));
+mat3 m = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.hlsl
index c35ca2a..65b0c98 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+static float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.msl
index 2635df5..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.spvasm
index 16290c0..c0f68aa 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 21
+; Bound: 23
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -24,10 +24,12 @@
     %float_7 = OpConstant %float 7
     %float_8 = OpConstant %float 8
          %15 = OpConstantComposite %v3float %float_6 %float_7 %float_8
-          %m = OpConstantComposite %mat3v3float %7 %11 %15
+         %16 = OpConstantComposite %mat3v3float %7 %11 %15
+%_ptr_Private_mat3v3float = OpTypePointer Private %mat3v3float
+          %m = OpVariable %_ptr_Private_mat3v3float Private %16
        %void = OpTypeVoid
-         %17 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %17
-         %20 = OpLabel
+         %19 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %19
+         %22 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.wgsl
index 18ca6e3..51e5689 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat3x3(0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0);
+var<private> m = mat3x3(0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0);
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl
index de0b7c5..84ea539 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl
@@ -1,3 +1,3 @@
-let m = mat3x3(0.0f, 1.0f, 2.0f,
-               3.0f, 4.0f, 5.0f,
-               6.0f, 7.0f, 8.0f);
+var<private> m = mat3x3(0.0f, 1.0f, 2.0f,
+                        3.0f, 4.0f, 5.0f,
+                        6.0f, 7.0f, 8.0f);
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.glsl
index f4631cb..31b0b4a 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3 m = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f));
+mat3 m = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.hlsl
index c35ca2a..65b0c98 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+static float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.msl
index 2635df5..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.spvasm
index 16290c0..c0f68aa 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 21
+; Bound: 23
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -24,10 +24,12 @@
     %float_7 = OpConstant %float 7
     %float_8 = OpConstant %float 8
          %15 = OpConstantComposite %v3float %float_6 %float_7 %float_8
-          %m = OpConstantComposite %mat3v3float %7 %11 %15
+         %16 = OpConstantComposite %mat3v3float %7 %11 %15
+%_ptr_Private_mat3v3float = OpTypePointer Private %mat3v3float
+          %m = OpVariable %_ptr_Private_mat3v3float Private %16
        %void = OpTypeVoid
-         %17 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %17
-         %20 = OpLabel
+         %19 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %19
+         %22 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.wgsl
index c4f87ec..ce6bd44 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat3x3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f);
+var<private> m = mat3x3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f);
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl
index 7b5f129..d8fa2b4 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl
@@ -1,3 +1,3 @@
-let m = mat3x3(vec3(0.0, 1.0, 2.0),
-               vec3(3.0, 4.0, 5.0),
-               vec3(6.0, 7.0, 8.0));
+var<private> m = mat3x3(vec3(0.0, 1.0, 2.0),
+                        vec3(3.0, 4.0, 5.0),
+                        vec3(6.0, 7.0, 8.0));
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.glsl
index f4631cb..31b0b4a 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3 m = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f));
+mat3 m = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.hlsl
index c35ca2a..65b0c98 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+static float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.msl
index 2635df5..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.spvasm
index 16290c0..c0f68aa 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 21
+; Bound: 23
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -24,10 +24,12 @@
     %float_7 = OpConstant %float 7
     %float_8 = OpConstant %float 8
          %15 = OpConstantComposite %v3float %float_6 %float_7 %float_8
-          %m = OpConstantComposite %mat3v3float %7 %11 %15
+         %16 = OpConstantComposite %mat3v3float %7 %11 %15
+%_ptr_Private_mat3v3float = OpTypePointer Private %mat3v3float
+          %m = OpVariable %_ptr_Private_mat3v3float Private %16
        %void = OpTypeVoid
-         %17 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %17
-         %20 = OpLabel
+         %19 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %19
+         %22 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.wgsl
index 21c62e8..3b34421 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat3x3(vec3(0.0, 1.0, 2.0), vec3(3.0, 4.0, 5.0), vec3(6.0, 7.0, 8.0));
+var<private> m = mat3x3(vec3(0.0, 1.0, 2.0), vec3(3.0, 4.0, 5.0), vec3(6.0, 7.0, 8.0));
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl
index ab6a8dd..aeff918 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl
@@ -1,3 +1,3 @@
-let m = mat3x3(vec3<f32>(0.0f, 1.0f, 2.0f),
-               vec3<f32>(3.0f, 4.0f, 5.0f),
-               vec3<f32>(6.0f, 7.0f, 8.0f));
+var<private> m = mat3x3(vec3<f32>(0.0f, 1.0f, 2.0f),
+                        vec3<f32>(3.0f, 4.0f, 5.0f),
+                        vec3<f32>(6.0f, 7.0f, 8.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.glsl
index f4631cb..31b0b4a 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3 m = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f));
+mat3 m = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.hlsl
index c35ca2a..65b0c98 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+static float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.msl
index 2635df5..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.spvasm
index 16290c0..c0f68aa 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 21
+; Bound: 23
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -24,10 +24,12 @@
     %float_7 = OpConstant %float 7
     %float_8 = OpConstant %float 8
          %15 = OpConstantComposite %v3float %float_6 %float_7 %float_8
-          %m = OpConstantComposite %mat3v3float %7 %11 %15
+         %16 = OpConstantComposite %mat3v3float %7 %11 %15
+%_ptr_Private_mat3v3float = OpTypePointer Private %mat3v3float
+          %m = OpVariable %_ptr_Private_mat3v3float Private %16
        %void = OpTypeVoid
-         %17 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %17
-         %20 = OpLabel
+         %19 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %19
+         %22 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.wgsl
index 9117012..f9d685e 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat3x3(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f));
+var<private> m = mat3x3(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl b/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl
index 1e2d9f8..0ecffa3 100644
--- a/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl
@@ -1 +1 @@
-let m = mat3x3<f32>();
+var<private> m = mat3x3<f32>();
diff --git a/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.glsl
index e16f26c..421fc2b 100644
--- a/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3 m = mat3(vec3(0.0f), vec3(0.0f), vec3(0.0f));
+mat3 m = mat3(vec3(0.0f), vec3(0.0f), vec3(0.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.hlsl
index 4c120a7..b96d4e1 100644
--- a/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float3x3 m = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+static float3x3 m = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
diff --git a/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.msl
index ddcb08d..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3x3 m = float3x3(float3(0.0f), float3(0.0f), float3(0.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.spvasm
index 0ec90cb..743b9d4 100644
--- a/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 9
+; Bound: 11
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -12,10 +12,12 @@
       %float = OpTypeFloat 32
     %v3float = OpTypeVector %float 3
 %mat3v3float = OpTypeMatrix %v3float 3
-          %m = OpConstantNull %mat3v3float
+          %4 = OpConstantNull %mat3v3float
+%_ptr_Private_mat3v3float = OpTypePointer Private %mat3v3float
+          %m = OpVariable %_ptr_Private_mat3v3float Private %4
        %void = OpTypeVoid
-          %5 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %5
-          %8 = OpLabel
+          %7 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %7
+         %10 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.wgsl
index 1e2d9f8..0ecffa3 100644
--- a/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat3x3<f32>();
+var<private> m = mat3x3<f32>();
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl
index 823be66..6997b0e 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl
@@ -1,6 +1,6 @@
-let m = mat3x4(mat3x4<f32>(0.0f, 1.0f, 2.0f, 3.0f,
-                           4.0f, 5.0f, 6.0f, 7.0f,
-                           8.0f, 9.0f, 10.0f, 11.0f));
+var<private> m = mat3x4(mat3x4<f32>(0.0f, 1.0f, 2.0f, 3.0f,
+                                    4.0f, 5.0f, 6.0f, 7.0f,
+                                    8.0f, 9.0f, 10.0f, 11.0f));
 
 fn f() -> mat3x4<f32> {
     let m_1 = mat3x4(m);
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.glsl
index 6c64f68..cd41138 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.glsl
@@ -4,9 +4,9 @@
 void unused_entry_point() {
   return;
 }
-const mat3x4 m = mat3x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f));
+mat3x4 m = mat3x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f));
 mat3x4 f() {
-  mat3x4 m_1 = mat3x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f));
+  mat3x4 m_1 = mat3x4(m);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.hlsl
index 77ea8af..11e3fe8 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.hlsl
@@ -3,9 +3,9 @@
   return;
 }
 
-static const float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+static float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
 
 float3x4 f() {
-  const float3x4 m_1 = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+  const float3x4 m_1 = float3x4(m);
   return m_1;
 }
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.msl
index 4ee3d7b..9295b89 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.msl
@@ -1,10 +1,9 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
-
 float3x4 f() {
-  float3x4 const m_1 = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+  thread float3x4 tint_symbol = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+  float3x4 const m_1 = float3x4(tint_symbol);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.spvasm
index 8019731..707e9ce 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 27
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,15 +28,18 @@
    %float_10 = OpConstant %float 10
    %float_11 = OpConstant %float 11
          %18 = OpConstantComposite %v4float %float_8 %float_9 %float_10 %float_11
-          %m = OpConstantComposite %mat3v4float %8 %13 %18
+         %19 = OpConstantComposite %mat3v4float %8 %13 %18
+%_ptr_Private_mat3v4float = OpTypePointer Private %mat3v4float
+          %m = OpVariable %_ptr_Private_mat3v4float Private %19
        %void = OpTypeVoid
-         %20 = OpTypeFunction %void
-         %24 = OpTypeFunction %mat3v4float
-%unused_entry_point = OpFunction %void None %20
-         %23 = OpLabel
+         %22 = OpTypeFunction %void
+         %26 = OpTypeFunction %mat3v4float
+%unused_entry_point = OpFunction %void None %22
+         %25 = OpLabel
                OpReturn
                OpFunctionEnd
-          %f = OpFunction %mat3v4float None %24
-         %26 = OpLabel
-               OpReturnValue %m
+          %f = OpFunction %mat3v4float None %26
+         %28 = OpLabel
+         %30 = OpLoad %mat3v4float %m
+               OpReturnValue %30
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.wgsl
index 4c6c2d0..14caa3e 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.wgsl
@@ -1,4 +1,4 @@
-let m = mat3x4(mat3x4<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f));
+var<private> m = mat3x4(mat3x4<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f));
 
 fn f() -> mat3x4<f32> {
   let m_1 = mat3x4(m);
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl
index 0a2e8e0..99d896b 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl
@@ -1,3 +1,3 @@
-let m = mat3x4<f32>(0.0f, 1.0f, 2.0f, 3.0f,
-                    4.0f, 5.0f, 6.0f, 7.0f,
-                    8.0f, 9.0f, 10.0f, 11.0f);
+var<private> m = mat3x4<f32>(0.0f, 1.0f, 2.0f, 3.0f,
+                             4.0f, 5.0f, 6.0f, 7.0f,
+                             8.0f, 9.0f, 10.0f, 11.0f);
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.glsl
index 2b8f578..766e72c 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3x4 m = mat3x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f));
+mat3x4 m = mat3x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.hlsl
index fae68df..b23383e 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+static float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.msl
index 3608220..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.spvasm
index 9740914..d29b311 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 24
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -27,10 +27,12 @@
    %float_10 = OpConstant %float 10
    %float_11 = OpConstant %float 11
          %18 = OpConstantComposite %v4float %float_8 %float_9 %float_10 %float_11
-          %m = OpConstantComposite %mat3v4float %8 %13 %18
+         %19 = OpConstantComposite %mat3v4float %8 %13 %18
+%_ptr_Private_mat3v4float = OpTypePointer Private %mat3v4float
+          %m = OpVariable %_ptr_Private_mat3v4float Private %19
        %void = OpTypeVoid
-         %20 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %20
-         %23 = OpLabel
+         %22 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %22
+         %25 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.wgsl
index 205baa2..e4268e1 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat3x4<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f);
+var<private> m = mat3x4<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f);
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl
index a3fc9c6..672ac2e 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl
@@ -1,3 +1,3 @@
-let m = mat3x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f),
-                    vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f),
-                    vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f));
+var<private> m = mat3x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f),
+                             vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f),
+                             vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.glsl
index 2b8f578..766e72c 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3x4 m = mat3x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f));
+mat3x4 m = mat3x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.hlsl
index fae68df..b23383e 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+static float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.msl
index 3608220..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.spvasm
index 9740914..d29b311 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 24
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -27,10 +27,12 @@
    %float_10 = OpConstant %float 10
    %float_11 = OpConstant %float 11
          %18 = OpConstantComposite %v4float %float_8 %float_9 %float_10 %float_11
-          %m = OpConstantComposite %mat3v4float %8 %13 %18
+         %19 = OpConstantComposite %mat3v4float %8 %13 %18
+%_ptr_Private_mat3v4float = OpTypePointer Private %mat3v4float
+          %m = OpVariable %_ptr_Private_mat3v4float Private %19
        %void = OpTypeVoid
-         %20 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %20
-         %23 = OpLabel
+         %22 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %22
+         %25 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.wgsl
index 05bc2e6..8a529c9 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat3x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f), vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f));
+var<private> m = mat3x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f), vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl
index b80dbc5..b46182b 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl
@@ -1,6 +1,6 @@
-let m = mat3x4(mat3x4(0.0f, 1.0f, 2.0f, 3.0f,
-                      4.0f, 5.0f, 6.0f, 7.0f,
-                      8.0f, 9.0f, 10.0f, 11.0f));
+var<private> m = mat3x4(mat3x4(0.0f, 1.0f, 2.0f, 3.0f,
+                               4.0f, 5.0f, 6.0f, 7.0f,
+                               8.0f, 9.0f, 10.0f, 11.0f));
 
 fn f() -> mat3x4<f32> {
     let m_1 = mat3x4(m);
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.glsl
index 6c64f68..cd41138 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.glsl
@@ -4,9 +4,9 @@
 void unused_entry_point() {
   return;
 }
-const mat3x4 m = mat3x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f));
+mat3x4 m = mat3x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f));
 mat3x4 f() {
-  mat3x4 m_1 = mat3x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f));
+  mat3x4 m_1 = mat3x4(m);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.hlsl
index 77ea8af..11e3fe8 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.hlsl
@@ -3,9 +3,9 @@
   return;
 }
 
-static const float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+static float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
 
 float3x4 f() {
-  const float3x4 m_1 = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+  const float3x4 m_1 = float3x4(m);
   return m_1;
 }
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.msl
index 4ee3d7b..9295b89 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.msl
@@ -1,10 +1,9 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
-
 float3x4 f() {
-  float3x4 const m_1 = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+  thread float3x4 tint_symbol = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+  float3x4 const m_1 = float3x4(tint_symbol);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.spvasm
index 8019731..707e9ce 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 27
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,15 +28,18 @@
    %float_10 = OpConstant %float 10
    %float_11 = OpConstant %float 11
          %18 = OpConstantComposite %v4float %float_8 %float_9 %float_10 %float_11
-          %m = OpConstantComposite %mat3v4float %8 %13 %18
+         %19 = OpConstantComposite %mat3v4float %8 %13 %18
+%_ptr_Private_mat3v4float = OpTypePointer Private %mat3v4float
+          %m = OpVariable %_ptr_Private_mat3v4float Private %19
        %void = OpTypeVoid
-         %20 = OpTypeFunction %void
-         %24 = OpTypeFunction %mat3v4float
-%unused_entry_point = OpFunction %void None %20
-         %23 = OpLabel
+         %22 = OpTypeFunction %void
+         %26 = OpTypeFunction %mat3v4float
+%unused_entry_point = OpFunction %void None %22
+         %25 = OpLabel
                OpReturn
                OpFunctionEnd
-          %f = OpFunction %mat3v4float None %24
-         %26 = OpLabel
-               OpReturnValue %m
+          %f = OpFunction %mat3v4float None %26
+         %28 = OpLabel
+         %30 = OpLoad %mat3v4float %m
+               OpReturnValue %30
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.wgsl
index 46be1d3..83bb686 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.wgsl
@@ -1,4 +1,4 @@
-let m = mat3x4(mat3x4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f));
+var<private> m = mat3x4(mat3x4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f));
 
 fn f() -> mat3x4<f32> {
   let m_1 = mat3x4(m);
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl
index cce8161..ac7c5bd 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl
@@ -1,3 +1,3 @@
-let m = mat3x4(0.0, 1.0, 2.0, 3.0,
-               4.0, 5.0, 6.0, 7.0,
-               8.0, 9.0, 10.0, 11.0);
+var<private> m = mat3x4(0.0, 1.0, 2.0, 3.0,
+                        4.0, 5.0, 6.0, 7.0,
+                        8.0, 9.0, 10.0, 11.0);
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.glsl
index 2b8f578..766e72c 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3x4 m = mat3x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f));
+mat3x4 m = mat3x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.hlsl
index fae68df..b23383e 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+static float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.msl
index 3608220..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.spvasm
index 9740914..d29b311 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 24
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -27,10 +27,12 @@
    %float_10 = OpConstant %float 10
    %float_11 = OpConstant %float 11
          %18 = OpConstantComposite %v4float %float_8 %float_9 %float_10 %float_11
-          %m = OpConstantComposite %mat3v4float %8 %13 %18
+         %19 = OpConstantComposite %mat3v4float %8 %13 %18
+%_ptr_Private_mat3v4float = OpTypePointer Private %mat3v4float
+          %m = OpVariable %_ptr_Private_mat3v4float Private %19
        %void = OpTypeVoid
-         %20 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %20
-         %23 = OpLabel
+         %22 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %22
+         %25 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.wgsl
index 5fce07f..cdc7e44 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat3x4(0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0);
+var<private> m = mat3x4(0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0);
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl
index 9af3d0e..21f4e06 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl
@@ -1,3 +1,3 @@
-let m = mat3x4(0.0f, 1.0f, 2.0f, 3.0f,
-               4.0f, 5.0f, 6.0f, 7.0f,
-               8.0f, 9.0f, 10.0f, 11.0f);
+var<private> m = mat3x4(0.0f, 1.0f, 2.0f, 3.0f,
+                        4.0f, 5.0f, 6.0f, 7.0f,
+                        8.0f, 9.0f, 10.0f, 11.0f);
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.glsl
index 2b8f578..766e72c 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3x4 m = mat3x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f));
+mat3x4 m = mat3x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.hlsl
index fae68df..b23383e 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+static float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.msl
index 3608220..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.spvasm
index 9740914..d29b311 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 24
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -27,10 +27,12 @@
    %float_10 = OpConstant %float 10
    %float_11 = OpConstant %float 11
          %18 = OpConstantComposite %v4float %float_8 %float_9 %float_10 %float_11
-          %m = OpConstantComposite %mat3v4float %8 %13 %18
+         %19 = OpConstantComposite %mat3v4float %8 %13 %18
+%_ptr_Private_mat3v4float = OpTypePointer Private %mat3v4float
+          %m = OpVariable %_ptr_Private_mat3v4float Private %19
        %void = OpTypeVoid
-         %20 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %20
-         %23 = OpLabel
+         %22 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %22
+         %25 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.wgsl
index 8843467..7af29f0 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat3x4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f);
+var<private> m = mat3x4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f);
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl
index cf638c2..0fdc26b 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl
@@ -1,3 +1,3 @@
-let m = mat3x4(vec4(0.0, 1.0, 2.0, 3.0),
-               vec4(4.0, 5.0, 6.0, 7.0),
-               vec4(8.0, 9.0, 10.0, 11.0));
+var<private> m = mat3x4(vec4(0.0, 1.0, 2.0, 3.0),
+                        vec4(4.0, 5.0, 6.0, 7.0),
+                        vec4(8.0, 9.0, 10.0, 11.0));
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.glsl
index 2b8f578..766e72c 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3x4 m = mat3x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f));
+mat3x4 m = mat3x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.hlsl
index fae68df..b23383e 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+static float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.msl
index 3608220..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.spvasm
index 9740914..d29b311 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 24
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -27,10 +27,12 @@
    %float_10 = OpConstant %float 10
    %float_11 = OpConstant %float 11
          %18 = OpConstantComposite %v4float %float_8 %float_9 %float_10 %float_11
-          %m = OpConstantComposite %mat3v4float %8 %13 %18
+         %19 = OpConstantComposite %mat3v4float %8 %13 %18
+%_ptr_Private_mat3v4float = OpTypePointer Private %mat3v4float
+          %m = OpVariable %_ptr_Private_mat3v4float Private %19
        %void = OpTypeVoid
-         %20 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %20
-         %23 = OpLabel
+         %22 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %22
+         %25 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.wgsl
index 4b5d529..bec21cf 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat3x4(vec4(0.0, 1.0, 2.0, 3.0), vec4(4.0, 5.0, 6.0, 7.0), vec4(8.0, 9.0, 10.0, 11.0));
+var<private> m = mat3x4(vec4(0.0, 1.0, 2.0, 3.0), vec4(4.0, 5.0, 6.0, 7.0), vec4(8.0, 9.0, 10.0, 11.0));
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl
index 32169b8..7cb7da6 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl
@@ -1,3 +1,3 @@
-let m = mat3x4(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f),
-               vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f),
-               vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f));
+var<private> m = mat3x4(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f),
+                        vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f),
+                        vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.glsl
index 2b8f578..766e72c 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3x4 m = mat3x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f));
+mat3x4 m = mat3x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.hlsl
index fae68df..b23383e 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+static float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.msl
index 3608220..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.spvasm
index 9740914..d29b311 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 24
+; Bound: 26
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -27,10 +27,12 @@
    %float_10 = OpConstant %float 10
    %float_11 = OpConstant %float 11
          %18 = OpConstantComposite %v4float %float_8 %float_9 %float_10 %float_11
-          %m = OpConstantComposite %mat3v4float %8 %13 %18
+         %19 = OpConstantComposite %mat3v4float %8 %13 %18
+%_ptr_Private_mat3v4float = OpTypePointer Private %mat3v4float
+          %m = OpVariable %_ptr_Private_mat3v4float Private %19
        %void = OpTypeVoid
-         %20 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %20
-         %23 = OpLabel
+         %22 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %22
+         %25 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.wgsl
index 7ce7445..a0c86ae2 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat3x4(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f), vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f));
+var<private> m = mat3x4(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f), vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl b/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl
index 05ed798..6b2bb52 100644
--- a/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl
@@ -1 +1 @@
-let m = mat3x4<f32>();
+var<private> m = mat3x4<f32>();
diff --git a/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.glsl
index 3448385..845aed1 100644
--- a/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3x4 m = mat3x4(vec4(0.0f), vec4(0.0f), vec4(0.0f));
+mat3x4 m = mat3x4(vec4(0.0f), vec4(0.0f), vec4(0.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.hlsl
index 38ea523..3f3c45b 100644
--- a/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float3x4 m = float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+static float3x4 m = float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
diff --git a/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.msl
index deba45f..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3x4 m = float3x4(float4(0.0f), float4(0.0f), float4(0.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.spvasm
index e561e11..329a1ab 100644
--- a/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 9
+; Bound: 11
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -12,10 +12,12 @@
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
 %mat3v4float = OpTypeMatrix %v4float 3
-          %m = OpConstantNull %mat3v4float
+          %4 = OpConstantNull %mat3v4float
+%_ptr_Private_mat3v4float = OpTypePointer Private %mat3v4float
+          %m = OpVariable %_ptr_Private_mat3v4float Private %4
        %void = OpTypeVoid
-          %5 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %5
-          %8 = OpLabel
+          %7 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %7
+         %10 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.wgsl
index 05ed798..6b2bb52 100644
--- a/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat3x4<f32>();
+var<private> m = mat3x4<f32>();
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl
index 44099e2..d82b3ff 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl
@@ -1,7 +1,7 @@
-let m = mat4x2(mat4x2<f32>(0.0f, 1.0f,
-                           2.0f, 3.0f,
-                           4.0f, 5.0f,
-                           6.0f, 7.0f));
+var<private> m = mat4x2(mat4x2<f32>(0.0f, 1.0f,
+                                    2.0f, 3.0f,
+                                    4.0f, 5.0f,
+                                    6.0f, 7.0f));
 
 fn f() -> mat4x2<f32> {
     let m_1 = mat4x2(m);
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.glsl
index 1adb3c8..e5a475d 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.glsl
@@ -4,9 +4,9 @@
 void unused_entry_point() {
   return;
 }
-const mat4x2 m = mat4x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f), vec2(6.0f, 7.0f));
+mat4x2 m = mat4x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f), vec2(6.0f, 7.0f));
 mat4x2 f() {
-  mat4x2 m_1 = mat4x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f), vec2(6.0f, 7.0f));
+  mat4x2 m_1 = mat4x2(m);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.hlsl
index a8a20db..b957caa 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.hlsl
@@ -3,9 +3,9 @@
   return;
 }
 
-static const float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+static float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
 
 float4x2 f() {
-  const float4x2 m_1 = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+  const float4x2 m_1 = float4x2(m);
   return m_1;
 }
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.msl
index dcef3ec..2114895 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.msl
@@ -1,10 +1,9 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
-
 float4x2 f() {
-  float4x2 const m_1 = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+  thread float4x2 tint_symbol = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+  float4x2 const m_1 = float4x2(tint_symbol);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.spvasm
index 54757df..f40139e 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 24
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -25,15 +25,18 @@
     %float_6 = OpConstant %float 6
     %float_7 = OpConstant %float 7
          %15 = OpConstantComposite %v2float %float_6 %float_7
-          %m = OpConstantComposite %mat4v2float %6 %9 %12 %15
+         %16 = OpConstantComposite %mat4v2float %6 %9 %12 %15
+%_ptr_Private_mat4v2float = OpTypePointer Private %mat4v2float
+          %m = OpVariable %_ptr_Private_mat4v2float Private %16
        %void = OpTypeVoid
-         %17 = OpTypeFunction %void
-         %21 = OpTypeFunction %mat4v2float
-%unused_entry_point = OpFunction %void None %17
-         %20 = OpLabel
+         %19 = OpTypeFunction %void
+         %23 = OpTypeFunction %mat4v2float
+%unused_entry_point = OpFunction %void None %19
+         %22 = OpLabel
                OpReturn
                OpFunctionEnd
-          %f = OpFunction %mat4v2float None %21
-         %23 = OpLabel
-               OpReturnValue %m
+          %f = OpFunction %mat4v2float None %23
+         %25 = OpLabel
+         %27 = OpLoad %mat4v2float %m
+               OpReturnValue %27
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.wgsl
index 6ae1b50..6eb8cc6 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.wgsl
@@ -1,4 +1,4 @@
-let m = mat4x2(mat4x2<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f));
+var<private> m = mat4x2(mat4x2<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f));
 
 fn f() -> mat4x2<f32> {
   let m_1 = mat4x2(m);
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl
index 51b6839..1332e85 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl
@@ -1,4 +1,4 @@
-let m = mat4x2<f32>(0.0f, 1.0f,
-                    2.0f, 3.0f,
-                    4.0f, 5.0f,
-                    6.0f, 7.0f);
+var<private> m = mat4x2<f32>(0.0f, 1.0f,
+                             2.0f, 3.0f,
+                             4.0f, 5.0f,
+                             6.0f, 7.0f);
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.glsl
index 93ae98c..2fbbb7e 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4x2 m = mat4x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f), vec2(6.0f, 7.0f));
+mat4x2 m = mat4x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f), vec2(6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.hlsl
index 2acab36..e97d279 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+static float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.msl
index 0597230..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.spvasm
index ef14ca0..fd79610 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 21
+; Bound: 23
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -24,10 +24,12 @@
     %float_6 = OpConstant %float 6
     %float_7 = OpConstant %float 7
          %15 = OpConstantComposite %v2float %float_6 %float_7
-          %m = OpConstantComposite %mat4v2float %6 %9 %12 %15
+         %16 = OpConstantComposite %mat4v2float %6 %9 %12 %15
+%_ptr_Private_mat4v2float = OpTypePointer Private %mat4v2float
+          %m = OpVariable %_ptr_Private_mat4v2float Private %16
        %void = OpTypeVoid
-         %17 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %17
-         %20 = OpLabel
+         %19 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %19
+         %22 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.wgsl
index f8b02e2..5ca6239 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat4x2<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f);
+var<private> m = mat4x2<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f);
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl
index 80b3345..74227f4 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl
@@ -1,4 +1,4 @@
-let m = mat4x2<f32>(vec2<f32>(0.0f, 1.0f),
-                    vec2<f32>(2.0f, 3.0f),
-                    vec2<f32>(4.0f, 5.0f),
-                    vec2<f32>(6.0f, 7.0f));
+var<private> m = mat4x2<f32>(vec2<f32>(0.0f, 1.0f),
+                             vec2<f32>(2.0f, 3.0f),
+                             vec2<f32>(4.0f, 5.0f),
+                             vec2<f32>(6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.glsl
index 93ae98c..2fbbb7e 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4x2 m = mat4x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f), vec2(6.0f, 7.0f));
+mat4x2 m = mat4x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f), vec2(6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.hlsl
index 2acab36..e97d279 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+static float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.msl
index 0597230..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.spvasm
index ef14ca0..fd79610 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 21
+; Bound: 23
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -24,10 +24,12 @@
     %float_6 = OpConstant %float 6
     %float_7 = OpConstant %float 7
          %15 = OpConstantComposite %v2float %float_6 %float_7
-          %m = OpConstantComposite %mat4v2float %6 %9 %12 %15
+         %16 = OpConstantComposite %mat4v2float %6 %9 %12 %15
+%_ptr_Private_mat4v2float = OpTypePointer Private %mat4v2float
+          %m = OpVariable %_ptr_Private_mat4v2float Private %16
        %void = OpTypeVoid
-         %17 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %17
-         %20 = OpLabel
+         %19 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %19
+         %22 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.wgsl
index 2d10da9..a425e47 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat4x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f), vec2<f32>(4.0f, 5.0f), vec2<f32>(6.0f, 7.0f));
+var<private> m = mat4x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f), vec2<f32>(4.0f, 5.0f), vec2<f32>(6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl
index 45b9ed0..70ea4df 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl
@@ -1,7 +1,7 @@
-let m = mat4x2(mat4x2(0.0f, 1.0f,
-                      2.0f, 3.0f,
-                      4.0f, 5.0f,
-                      6.0f, 7.0f));
+var<private> m = mat4x2(mat4x2(0.0f, 1.0f,
+                               2.0f, 3.0f,
+                               4.0f, 5.0f,
+                               6.0f, 7.0f));
 
 fn f() -> mat4x2<f32> {
     let m_1 = mat4x2(m);
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.glsl
index 1adb3c8..e5a475d 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.glsl
@@ -4,9 +4,9 @@
 void unused_entry_point() {
   return;
 }
-const mat4x2 m = mat4x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f), vec2(6.0f, 7.0f));
+mat4x2 m = mat4x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f), vec2(6.0f, 7.0f));
 mat4x2 f() {
-  mat4x2 m_1 = mat4x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f), vec2(6.0f, 7.0f));
+  mat4x2 m_1 = mat4x2(m);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.hlsl
index a8a20db..b957caa 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.hlsl
@@ -3,9 +3,9 @@
   return;
 }
 
-static const float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+static float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
 
 float4x2 f() {
-  const float4x2 m_1 = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+  const float4x2 m_1 = float4x2(m);
   return m_1;
 }
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.msl
index dcef3ec..2114895 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.msl
@@ -1,10 +1,9 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
-
 float4x2 f() {
-  float4x2 const m_1 = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+  thread float4x2 tint_symbol = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+  float4x2 const m_1 = float4x2(tint_symbol);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.spvasm
index 54757df..f40139e 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 24
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -25,15 +25,18 @@
     %float_6 = OpConstant %float 6
     %float_7 = OpConstant %float 7
          %15 = OpConstantComposite %v2float %float_6 %float_7
-          %m = OpConstantComposite %mat4v2float %6 %9 %12 %15
+         %16 = OpConstantComposite %mat4v2float %6 %9 %12 %15
+%_ptr_Private_mat4v2float = OpTypePointer Private %mat4v2float
+          %m = OpVariable %_ptr_Private_mat4v2float Private %16
        %void = OpTypeVoid
-         %17 = OpTypeFunction %void
-         %21 = OpTypeFunction %mat4v2float
-%unused_entry_point = OpFunction %void None %17
-         %20 = OpLabel
+         %19 = OpTypeFunction %void
+         %23 = OpTypeFunction %mat4v2float
+%unused_entry_point = OpFunction %void None %19
+         %22 = OpLabel
                OpReturn
                OpFunctionEnd
-          %f = OpFunction %mat4v2float None %21
-         %23 = OpLabel
-               OpReturnValue %m
+          %f = OpFunction %mat4v2float None %23
+         %25 = OpLabel
+         %27 = OpLoad %mat4v2float %m
+               OpReturnValue %27
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.wgsl
index ace9fa2..11bedce 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.wgsl
@@ -1,4 +1,4 @@
-let m = mat4x2(mat4x2(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f));
+var<private> m = mat4x2(mat4x2(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f));
 
 fn f() -> mat4x2<f32> {
   let m_1 = mat4x2(m);
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl
index f0946b9..61644c1 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl
@@ -1,4 +1,4 @@
-let m = mat4x2(0.0, 1.0,
-               2.0, 3.0,
-               4.0, 5.0,
-               6.0, 7.0);
+var<private> m = mat4x2(0.0, 1.0,
+                        2.0, 3.0,
+                        4.0, 5.0,
+                        6.0, 7.0);
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.glsl
index 93ae98c..2fbbb7e 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4x2 m = mat4x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f), vec2(6.0f, 7.0f));
+mat4x2 m = mat4x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f), vec2(6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.hlsl
index 2acab36..e97d279 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+static float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.msl
index 0597230..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.spvasm
index ef14ca0..fd79610 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 21
+; Bound: 23
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -24,10 +24,12 @@
     %float_6 = OpConstant %float 6
     %float_7 = OpConstant %float 7
          %15 = OpConstantComposite %v2float %float_6 %float_7
-          %m = OpConstantComposite %mat4v2float %6 %9 %12 %15
+         %16 = OpConstantComposite %mat4v2float %6 %9 %12 %15
+%_ptr_Private_mat4v2float = OpTypePointer Private %mat4v2float
+          %m = OpVariable %_ptr_Private_mat4v2float Private %16
        %void = OpTypeVoid
-         %17 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %17
-         %20 = OpLabel
+         %19 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %19
+         %22 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.wgsl
index 8f69508..3f21792 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat4x2(0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0);
+var<private> m = mat4x2(0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0);
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl
index f5a544c..f4ad0c1 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl
@@ -1,4 +1,4 @@
-let m = mat4x2(0.0f, 1.0f,
-               2.0f, 3.0f,
-               4.0f, 5.0f,
-               6.0f, 7.0f);
+var<private> m = mat4x2(0.0f, 1.0f,
+                        2.0f, 3.0f,
+                        4.0f, 5.0f,
+                        6.0f, 7.0f);
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.glsl
index 93ae98c..2fbbb7e 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4x2 m = mat4x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f), vec2(6.0f, 7.0f));
+mat4x2 m = mat4x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f), vec2(6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.hlsl
index 2acab36..e97d279 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+static float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.msl
index 0597230..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.spvasm
index ef14ca0..fd79610 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 21
+; Bound: 23
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -24,10 +24,12 @@
     %float_6 = OpConstant %float 6
     %float_7 = OpConstant %float 7
          %15 = OpConstantComposite %v2float %float_6 %float_7
-          %m = OpConstantComposite %mat4v2float %6 %9 %12 %15
+         %16 = OpConstantComposite %mat4v2float %6 %9 %12 %15
+%_ptr_Private_mat4v2float = OpTypePointer Private %mat4v2float
+          %m = OpVariable %_ptr_Private_mat4v2float Private %16
        %void = OpTypeVoid
-         %17 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %17
-         %20 = OpLabel
+         %19 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %19
+         %22 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.wgsl
index 5c582f0..94293b0 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat4x2(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f);
+var<private> m = mat4x2(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f);
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl
index 2d90c35..8d088c5 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl
@@ -1,4 +1,4 @@
-let m = mat4x2(vec2(0.0, 1.0),
-               vec2(2.0, 3.0),
-               vec2(4.0, 5.0),
-               vec2(6.0, 7.0));
+var<private> m = mat4x2(vec2(0.0, 1.0),
+                        vec2(2.0, 3.0),
+                        vec2(4.0, 5.0),
+                        vec2(6.0, 7.0));
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.glsl
index 93ae98c..2fbbb7e 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4x2 m = mat4x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f), vec2(6.0f, 7.0f));
+mat4x2 m = mat4x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f), vec2(6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.hlsl
index 2acab36..e97d279 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+static float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.msl
index 0597230..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.spvasm
index ef14ca0..fd79610 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 21
+; Bound: 23
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -24,10 +24,12 @@
     %float_6 = OpConstant %float 6
     %float_7 = OpConstant %float 7
          %15 = OpConstantComposite %v2float %float_6 %float_7
-          %m = OpConstantComposite %mat4v2float %6 %9 %12 %15
+         %16 = OpConstantComposite %mat4v2float %6 %9 %12 %15
+%_ptr_Private_mat4v2float = OpTypePointer Private %mat4v2float
+          %m = OpVariable %_ptr_Private_mat4v2float Private %16
        %void = OpTypeVoid
-         %17 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %17
-         %20 = OpLabel
+         %19 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %19
+         %22 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.wgsl
index 1786649..571207b 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat4x2(vec2(0.0, 1.0), vec2(2.0, 3.0), vec2(4.0, 5.0), vec2(6.0, 7.0));
+var<private> m = mat4x2(vec2(0.0, 1.0), vec2(2.0, 3.0), vec2(4.0, 5.0), vec2(6.0, 7.0));
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl
index 952511e..8da6415 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl
@@ -1,4 +1,4 @@
-let m = mat4x2(vec2<f32>(0.0f, 1.0f),
-               vec2<f32>(2.0f, 3.0f),
-               vec2<f32>(4.0f, 5.0f),
-               vec2<f32>(6.0f, 7.0f));
+var<private> m = mat4x2(vec2<f32>(0.0f, 1.0f),
+                        vec2<f32>(2.0f, 3.0f),
+                        vec2<f32>(4.0f, 5.0f),
+                        vec2<f32>(6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.glsl
index 93ae98c..2fbbb7e 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4x2 m = mat4x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f), vec2(6.0f, 7.0f));
+mat4x2 m = mat4x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f), vec2(6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.hlsl
index 2acab36..e97d279 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+static float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.msl
index 0597230..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.spvasm
index ef14ca0..fd79610 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 21
+; Bound: 23
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -24,10 +24,12 @@
     %float_6 = OpConstant %float 6
     %float_7 = OpConstant %float 7
          %15 = OpConstantComposite %v2float %float_6 %float_7
-          %m = OpConstantComposite %mat4v2float %6 %9 %12 %15
+         %16 = OpConstantComposite %mat4v2float %6 %9 %12 %15
+%_ptr_Private_mat4v2float = OpTypePointer Private %mat4v2float
+          %m = OpVariable %_ptr_Private_mat4v2float Private %16
        %void = OpTypeVoid
-         %17 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %17
-         %20 = OpLabel
+         %19 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %19
+         %22 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.wgsl
index e585e38..e024293 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat4x2(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f), vec2<f32>(4.0f, 5.0f), vec2<f32>(6.0f, 7.0f));
+var<private> m = mat4x2(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f), vec2<f32>(4.0f, 5.0f), vec2<f32>(6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl b/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl
index 474bd21..4c85dff 100644
--- a/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl
@@ -1 +1 @@
-let m = mat4x2<f32>();
+var<private> m = mat4x2<f32>();
diff --git a/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.glsl
index f767bee..9e082c7 100644
--- a/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4x2 m = mat4x2(vec2(0.0f), vec2(0.0f), vec2(0.0f), vec2(0.0f));
+mat4x2 m = mat4x2(vec2(0.0f), vec2(0.0f), vec2(0.0f), vec2(0.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.hlsl
index 4ceb8f1..f402a95 100644
--- a/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float4x2 m = float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx);
+static float4x2 m = float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx);
diff --git a/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.msl
index ef2e675..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4x2 m = float4x2(float2(0.0f), float2(0.0f), float2(0.0f), float2(0.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.spvasm
index bdaaa7d..328b418 100644
--- a/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 9
+; Bound: 11
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -12,10 +12,12 @@
       %float = OpTypeFloat 32
     %v2float = OpTypeVector %float 2
 %mat4v2float = OpTypeMatrix %v2float 4
-          %m = OpConstantNull %mat4v2float
+          %4 = OpConstantNull %mat4v2float
+%_ptr_Private_mat4v2float = OpTypePointer Private %mat4v2float
+          %m = OpVariable %_ptr_Private_mat4v2float Private %4
        %void = OpTypeVoid
-          %5 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %5
-          %8 = OpLabel
+          %7 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %7
+         %10 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.wgsl
index 474bd21..4c85dff 100644
--- a/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat4x2<f32>();
+var<private> m = mat4x2<f32>();
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl
index f940087..9b7dee4 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl
@@ -1,7 +1,7 @@
-let m = mat4x3(mat4x3<f32>(0.0f, 1.0f, 2.0f,
-                           3.0f, 4.0f, 5.0f,
-                           6.0f, 7.0f, 8.0f,
-                           9.0f, 10.0f, 11.0f));
+var<private> m = mat4x3(mat4x3<f32>(0.0f, 1.0f, 2.0f,
+                                    3.0f, 4.0f, 5.0f,
+                                    6.0f, 7.0f, 8.0f,
+                                    9.0f, 10.0f, 11.0f));
 
 fn f() -> mat4x3<f32> {
     let m_1 = mat4x3(m);
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.glsl
index f506747..9b28954 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.glsl
@@ -4,9 +4,9 @@
 void unused_entry_point() {
   return;
 }
-const mat4x3 m = mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f));
+mat4x3 m = mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f));
 mat4x3 f() {
-  mat4x3 m_1 = mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f));
+  mat4x3 m_1 = mat4x3(m);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.hlsl
index 8adbbb3..284dccb 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.hlsl
@@ -3,9 +3,9 @@
   return;
 }
 
-static const float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+static float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
 
 float4x3 f() {
-  const float4x3 m_1 = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+  const float4x3 m_1 = float4x3(m);
   return m_1;
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.msl
index b4c5eab..7327219 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.msl
@@ -1,10 +1,9 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
-
 float4x3 f() {
-  float4x3 const m_1 = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+  thread float4x3 tint_symbol = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+  float4x3 const m_1 = float4x3(tint_symbol);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.spvasm
index be135b0..8cfb499 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 28
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -29,15 +29,18 @@
    %float_10 = OpConstant %float 10
    %float_11 = OpConstant %float 11
          %19 = OpConstantComposite %v3float %float_9 %float_10 %float_11
-          %m = OpConstantComposite %mat4v3float %7 %11 %15 %19
+         %20 = OpConstantComposite %mat4v3float %7 %11 %15 %19
+%_ptr_Private_mat4v3float = OpTypePointer Private %mat4v3float
+          %m = OpVariable %_ptr_Private_mat4v3float Private %20
        %void = OpTypeVoid
-         %21 = OpTypeFunction %void
-         %25 = OpTypeFunction %mat4v3float
-%unused_entry_point = OpFunction %void None %21
-         %24 = OpLabel
+         %23 = OpTypeFunction %void
+         %27 = OpTypeFunction %mat4v3float
+%unused_entry_point = OpFunction %void None %23
+         %26 = OpLabel
                OpReturn
                OpFunctionEnd
-          %f = OpFunction %mat4v3float None %25
-         %27 = OpLabel
-               OpReturnValue %m
+          %f = OpFunction %mat4v3float None %27
+         %29 = OpLabel
+         %31 = OpLoad %mat4v3float %m
+               OpReturnValue %31
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.wgsl
index 4daec06..d406f38 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.wgsl
@@ -1,4 +1,4 @@
-let m = mat4x3(mat4x3<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f));
+var<private> m = mat4x3(mat4x3<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f));
 
 fn f() -> mat4x3<f32> {
   let m_1 = mat4x3(m);
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl
index 4dcaf4c..afb562f 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl
@@ -1,4 +1,4 @@
-let m = mat4x3<f32>(0.0f, 1.0f, 2.0f,
-                    3.0f, 4.0f, 5.0f,
-                    6.0f, 7.0f, 8.0f,
-                    9.0f, 10.0f, 11.0f);
+var<private> m = mat4x3<f32>(0.0f, 1.0f, 2.0f,
+                             3.0f, 4.0f, 5.0f,
+                             6.0f, 7.0f, 8.0f,
+                             9.0f, 10.0f, 11.0f);
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.glsl
index 532369f..06560c7 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4x3 m = mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f));
+mat4x3 m = mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.hlsl
index 254cc40..6b34e6e 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+static float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.msl
index d935650..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.spvasm
index cf9f4f3..f5592ed 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 25
+; Bound: 27
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,10 +28,12 @@
    %float_10 = OpConstant %float 10
    %float_11 = OpConstant %float 11
          %19 = OpConstantComposite %v3float %float_9 %float_10 %float_11
-          %m = OpConstantComposite %mat4v3float %7 %11 %15 %19
+         %20 = OpConstantComposite %mat4v3float %7 %11 %15 %19
+%_ptr_Private_mat4v3float = OpTypePointer Private %mat4v3float
+          %m = OpVariable %_ptr_Private_mat4v3float Private %20
        %void = OpTypeVoid
-         %21 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %21
-         %24 = OpLabel
+         %23 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %23
+         %26 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.wgsl
index dbe4773..aaa7fd7 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat4x3<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f);
+var<private> m = mat4x3<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f);
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl
index 74b3e9c..00f6cb1 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl
@@ -1,4 +1,4 @@
-let m = mat4x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f),
-                    vec3<f32>(3.0f, 4.0f, 5.0f),
-                    vec3<f32>(6.0f, 7.0f, 8.0f),
-                    vec3<f32>(9.0f, 10.0f, 11.0f));
+var<private> m = mat4x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f),
+                             vec3<f32>(3.0f, 4.0f, 5.0f),
+                             vec3<f32>(6.0f, 7.0f, 8.0f),
+                             vec3<f32>(9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.glsl
index 532369f..06560c7 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4x3 m = mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f));
+mat4x3 m = mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.hlsl
index 254cc40..6b34e6e 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+static float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.msl
index d935650..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.spvasm
index cf9f4f3..f5592ed 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 25
+; Bound: 27
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,10 +28,12 @@
    %float_10 = OpConstant %float 10
    %float_11 = OpConstant %float 11
          %19 = OpConstantComposite %v3float %float_9 %float_10 %float_11
-          %m = OpConstantComposite %mat4v3float %7 %11 %15 %19
+         %20 = OpConstantComposite %mat4v3float %7 %11 %15 %19
+%_ptr_Private_mat4v3float = OpTypePointer Private %mat4v3float
+          %m = OpVariable %_ptr_Private_mat4v3float Private %20
        %void = OpTypeVoid
-         %21 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %21
-         %24 = OpLabel
+         %23 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %23
+         %26 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.wgsl
index 2196b1e..8e07672 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat4x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f), vec3<f32>(9.0f, 10.0f, 11.0f));
+var<private> m = mat4x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f), vec3<f32>(9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl
index aba260d..ad7c1b2 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl
@@ -1,7 +1,7 @@
-let m = mat4x3(mat4x3(0.0f, 1.0f, 2.0f,
-                      3.0f, 4.0f, 5.0f,
-                      6.0f, 7.0f, 8.0f,
-                      9.0f, 10.0f, 11.0f));
+var<private> m = mat4x3(mat4x3(0.0f, 1.0f, 2.0f,
+                               3.0f, 4.0f, 5.0f,
+                               6.0f, 7.0f, 8.0f,
+                               9.0f, 10.0f, 11.0f));
 
 fn f() -> mat4x3<f32> {
     let m_1 = mat4x3(m);
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.glsl
index f506747..9b28954 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.glsl
@@ -4,9 +4,9 @@
 void unused_entry_point() {
   return;
 }
-const mat4x3 m = mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f));
+mat4x3 m = mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f));
 mat4x3 f() {
-  mat4x3 m_1 = mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f));
+  mat4x3 m_1 = mat4x3(m);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.hlsl
index 8adbbb3..284dccb 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.hlsl
@@ -3,9 +3,9 @@
   return;
 }
 
-static const float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+static float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
 
 float4x3 f() {
-  const float4x3 m_1 = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+  const float4x3 m_1 = float4x3(m);
   return m_1;
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.msl
index b4c5eab..7327219 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.msl
@@ -1,10 +1,9 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
-
 float4x3 f() {
-  float4x3 const m_1 = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+  thread float4x3 tint_symbol = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+  float4x3 const m_1 = float4x3(tint_symbol);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.spvasm
index be135b0..8cfb499 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 28
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -29,15 +29,18 @@
    %float_10 = OpConstant %float 10
    %float_11 = OpConstant %float 11
          %19 = OpConstantComposite %v3float %float_9 %float_10 %float_11
-          %m = OpConstantComposite %mat4v3float %7 %11 %15 %19
+         %20 = OpConstantComposite %mat4v3float %7 %11 %15 %19
+%_ptr_Private_mat4v3float = OpTypePointer Private %mat4v3float
+          %m = OpVariable %_ptr_Private_mat4v3float Private %20
        %void = OpTypeVoid
-         %21 = OpTypeFunction %void
-         %25 = OpTypeFunction %mat4v3float
-%unused_entry_point = OpFunction %void None %21
-         %24 = OpLabel
+         %23 = OpTypeFunction %void
+         %27 = OpTypeFunction %mat4v3float
+%unused_entry_point = OpFunction %void None %23
+         %26 = OpLabel
                OpReturn
                OpFunctionEnd
-          %f = OpFunction %mat4v3float None %25
-         %27 = OpLabel
-               OpReturnValue %m
+          %f = OpFunction %mat4v3float None %27
+         %29 = OpLabel
+         %31 = OpLoad %mat4v3float %m
+               OpReturnValue %31
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.wgsl
index d7e3f24..58662e4 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.wgsl
@@ -1,4 +1,4 @@
-let m = mat4x3(mat4x3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f));
+var<private> m = mat4x3(mat4x3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f));
 
 fn f() -> mat4x3<f32> {
   let m_1 = mat4x3(m);
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl
index 32326a9..449400b 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl
@@ -1,4 +1,4 @@
-let m = mat4x3(0.0, 1.0, 2.0,
-               3.0, 4.0, 5.0,
-               6.0, 7.0, 8.0,
-               9.0, 10.0, 11.0);
+var<private> m = mat4x3(0.0, 1.0, 2.0,
+                        3.0, 4.0, 5.0,
+                        6.0, 7.0, 8.0,
+                        9.0, 10.0, 11.0);
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.glsl
index 532369f..06560c7 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4x3 m = mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f));
+mat4x3 m = mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.hlsl
index 254cc40..6b34e6e 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+static float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.msl
index d935650..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.spvasm
index cf9f4f3..f5592ed 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 25
+; Bound: 27
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,10 +28,12 @@
    %float_10 = OpConstant %float 10
    %float_11 = OpConstant %float 11
          %19 = OpConstantComposite %v3float %float_9 %float_10 %float_11
-          %m = OpConstantComposite %mat4v3float %7 %11 %15 %19
+         %20 = OpConstantComposite %mat4v3float %7 %11 %15 %19
+%_ptr_Private_mat4v3float = OpTypePointer Private %mat4v3float
+          %m = OpVariable %_ptr_Private_mat4v3float Private %20
        %void = OpTypeVoid
-         %21 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %21
-         %24 = OpLabel
+         %23 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %23
+         %26 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.wgsl
index 209a376..b8f80a7 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat4x3(0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0);
+var<private> m = mat4x3(0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0);
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl
index f9dd146..dfa9afe 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl
@@ -1,4 +1,4 @@
-let m = mat4x3(0.0f, 1.0f, 2.0f,
-               3.0f, 4.0f, 5.0f,
-               6.0f, 7.0f, 8.0f,
-               9.0f, 10.0f, 11.0f);
+var<private> m = mat4x3(0.0f, 1.0f, 2.0f,
+                        3.0f, 4.0f, 5.0f,
+                        6.0f, 7.0f, 8.0f,
+                        9.0f, 10.0f, 11.0f);
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.glsl
index 532369f..06560c7 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4x3 m = mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f));
+mat4x3 m = mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.hlsl
index 254cc40..6b34e6e 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+static float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.msl
index d935650..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.spvasm
index cf9f4f3..f5592ed 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 25
+; Bound: 27
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,10 +28,12 @@
    %float_10 = OpConstant %float 10
    %float_11 = OpConstant %float 11
          %19 = OpConstantComposite %v3float %float_9 %float_10 %float_11
-          %m = OpConstantComposite %mat4v3float %7 %11 %15 %19
+         %20 = OpConstantComposite %mat4v3float %7 %11 %15 %19
+%_ptr_Private_mat4v3float = OpTypePointer Private %mat4v3float
+          %m = OpVariable %_ptr_Private_mat4v3float Private %20
        %void = OpTypeVoid
-         %21 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %21
-         %24 = OpLabel
+         %23 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %23
+         %26 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.wgsl
index 424df3d..11bbddb 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat4x3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f);
+var<private> m = mat4x3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f);
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl
index 8a80c15..cd71d8c 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl
@@ -1,4 +1,4 @@
-let m = mat4x3(vec3(0.0, 1.0, 2.0),
-               vec3(3.0, 4.0, 5.0),
-               vec3(6.0, 7.0, 8.0),
-               vec3(9.0, 10.0, 11.0));
+var<private> m = mat4x3(vec3(0.0, 1.0, 2.0),
+                        vec3(3.0, 4.0, 5.0),
+                        vec3(6.0, 7.0, 8.0),
+                        vec3(9.0, 10.0, 11.0));
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.glsl
index 532369f..06560c7 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4x3 m = mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f));
+mat4x3 m = mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.hlsl
index 254cc40..6b34e6e 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+static float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.msl
index d935650..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.spvasm
index cf9f4f3..f5592ed 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 25
+; Bound: 27
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,10 +28,12 @@
    %float_10 = OpConstant %float 10
    %float_11 = OpConstant %float 11
          %19 = OpConstantComposite %v3float %float_9 %float_10 %float_11
-          %m = OpConstantComposite %mat4v3float %7 %11 %15 %19
+         %20 = OpConstantComposite %mat4v3float %7 %11 %15 %19
+%_ptr_Private_mat4v3float = OpTypePointer Private %mat4v3float
+          %m = OpVariable %_ptr_Private_mat4v3float Private %20
        %void = OpTypeVoid
-         %21 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %21
-         %24 = OpLabel
+         %23 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %23
+         %26 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.wgsl
index 6e9e96b..2ec81b0 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat4x3(vec3(0.0, 1.0, 2.0), vec3(3.0, 4.0, 5.0), vec3(6.0, 7.0, 8.0), vec3(9.0, 10.0, 11.0));
+var<private> m = mat4x3(vec3(0.0, 1.0, 2.0), vec3(3.0, 4.0, 5.0), vec3(6.0, 7.0, 8.0), vec3(9.0, 10.0, 11.0));
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl
index d6c8650..f55af6c 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl
@@ -1,4 +1,4 @@
-let m = mat4x3(vec3<f32>(0.0f, 1.0f, 2.0f),
-               vec3<f32>(3.0f, 4.0f, 5.0f),
-               vec3<f32>(6.0f, 7.0f, 8.0f),
-               vec3<f32>(9.0f, 10.0f, 11.0f));
+var<private> m = mat4x3(vec3<f32>(0.0f, 1.0f, 2.0f),
+                        vec3<f32>(3.0f, 4.0f, 5.0f),
+                        vec3<f32>(6.0f, 7.0f, 8.0f),
+                        vec3<f32>(9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.glsl
index 532369f..06560c7 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4x3 m = mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f));
+mat4x3 m = mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.hlsl
index 254cc40..6b34e6e 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+static float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.msl
index d935650..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.spvasm
index cf9f4f3..f5592ed 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 25
+; Bound: 27
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,10 +28,12 @@
    %float_10 = OpConstant %float 10
    %float_11 = OpConstant %float 11
          %19 = OpConstantComposite %v3float %float_9 %float_10 %float_11
-          %m = OpConstantComposite %mat4v3float %7 %11 %15 %19
+         %20 = OpConstantComposite %mat4v3float %7 %11 %15 %19
+%_ptr_Private_mat4v3float = OpTypePointer Private %mat4v3float
+          %m = OpVariable %_ptr_Private_mat4v3float Private %20
        %void = OpTypeVoid
-         %21 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %21
-         %24 = OpLabel
+         %23 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %23
+         %26 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.wgsl
index eddcb09..7eb4b32 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat4x3(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f), vec3<f32>(9.0f, 10.0f, 11.0f));
+var<private> m = mat4x3(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f), vec3<f32>(9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl b/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl
index b8e7cf0..e23b03f 100644
--- a/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl
@@ -1 +1 @@
-let m = mat4x3<f32>();
+var<private> m = mat4x3<f32>();
diff --git a/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.glsl
index a60311a..b24fd7a 100644
--- a/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4x3 m = mat4x3(vec3(0.0f), vec3(0.0f), vec3(0.0f), vec3(0.0f));
+mat4x3 m = mat4x3(vec3(0.0f), vec3(0.0f), vec3(0.0f), vec3(0.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.hlsl
index 8741443..297a867 100644
--- a/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float4x3 m = float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+static float4x3 m = float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
diff --git a/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.msl
index 88679a8..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4x3 m = float4x3(float3(0.0f), float3(0.0f), float3(0.0f), float3(0.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.spvasm
index 833cf99..53ffa7d 100644
--- a/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 9
+; Bound: 11
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -12,10 +12,12 @@
       %float = OpTypeFloat 32
     %v3float = OpTypeVector %float 3
 %mat4v3float = OpTypeMatrix %v3float 4
-          %m = OpConstantNull %mat4v3float
+          %4 = OpConstantNull %mat4v3float
+%_ptr_Private_mat4v3float = OpTypePointer Private %mat4v3float
+          %m = OpVariable %_ptr_Private_mat4v3float Private %4
        %void = OpTypeVoid
-          %5 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %5
-          %8 = OpLabel
+          %7 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %7
+         %10 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.wgsl
index b8e7cf0..e23b03f 100644
--- a/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat4x3<f32>();
+var<private> m = mat4x3<f32>();
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl
index bc5556d..ff2b04a 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl
@@ -1,7 +1,7 @@
-let m = mat4x4(mat4x4<f32>(0.0f, 1.0f, 2.0f, 3.0f,
-                           4.0f, 5.0f, 6.0f, 7.0f,
-                           8.0f, 9.0f, 10.0f, 11.0f,
-                           12.0f, 13.0f, 14.0f, 15.0f));
+var<private> m = mat4x4(mat4x4<f32>(0.0f, 1.0f, 2.0f, 3.0f,
+                                    4.0f, 5.0f, 6.0f, 7.0f,
+                                    8.0f, 9.0f, 10.0f, 11.0f,
+                                    12.0f, 13.0f, 14.0f, 15.0f));
 
 fn f() -> mat4x4<f32> {
     let m_1 = mat4x4(m);
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.glsl
index 737abbe..5b8ecf4 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.glsl
@@ -4,9 +4,9 @@
 void unused_entry_point() {
   return;
 }
-const mat4 m = mat4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f), vec4(12.0f, 13.0f, 14.0f, 15.0f));
+mat4 m = mat4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f), vec4(12.0f, 13.0f, 14.0f, 15.0f));
 mat4 f() {
-  mat4 m_1 = mat4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f), vec4(12.0f, 13.0f, 14.0f, 15.0f));
+  mat4 m_1 = mat4(m);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.hlsl
index cdde3bc..fe1a3a7 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.hlsl
@@ -3,9 +3,9 @@
   return;
 }
 
-static const float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+static float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
 
 float4x4 f() {
-  const float4x4 m_1 = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+  const float4x4 m_1 = float4x4(m);
   return m_1;
 }
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.msl
index 54f69fa..71f0986 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.msl
@@ -1,10 +1,9 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
-
 float4x4 f() {
-  float4x4 const m_1 = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+  thread float4x4 tint_symbol = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+  float4x4 const m_1 = float4x4(tint_symbol);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.spvasm
index 43fad62..e503126 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -33,15 +33,18 @@
    %float_14 = OpConstant %float 14
    %float_15 = OpConstant %float 15
          %23 = OpConstantComposite %v4float %float_12 %float_13 %float_14 %float_15
-          %m = OpConstantComposite %mat4v4float %8 %13 %18 %23
+         %24 = OpConstantComposite %mat4v4float %8 %13 %18 %23
+%_ptr_Private_mat4v4float = OpTypePointer Private %mat4v4float
+          %m = OpVariable %_ptr_Private_mat4v4float Private %24
        %void = OpTypeVoid
-         %25 = OpTypeFunction %void
-         %29 = OpTypeFunction %mat4v4float
-%unused_entry_point = OpFunction %void None %25
-         %28 = OpLabel
+         %27 = OpTypeFunction %void
+         %31 = OpTypeFunction %mat4v4float
+%unused_entry_point = OpFunction %void None %27
+         %30 = OpLabel
                OpReturn
                OpFunctionEnd
-          %f = OpFunction %mat4v4float None %29
-         %31 = OpLabel
-               OpReturnValue %m
+          %f = OpFunction %mat4v4float None %31
+         %33 = OpLabel
+         %35 = OpLoad %mat4v4float %m
+               OpReturnValue %35
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.wgsl
index 908d9b9..ddab90c 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.wgsl
@@ -1,4 +1,4 @@
-let m = mat4x4(mat4x4<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f));
+var<private> m = mat4x4(mat4x4<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f));
 
 fn f() -> mat4x4<f32> {
   let m_1 = mat4x4(m);
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl
index 8ab5b16..bdd6737 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl
@@ -1,4 +1,4 @@
-let m = mat4x4<f32>(0.0f, 1.0f, 2.0f, 3.0f,
-                    4.0f, 5.0f, 6.0f, 7.0f,
-                    8.0f, 9.0f, 10.0f, 11.0f,
-                    12.0f, 13.0f, 14.0f, 15.0f);
+var<private> m = mat4x4<f32>(0.0f, 1.0f, 2.0f, 3.0f,
+                             4.0f, 5.0f, 6.0f, 7.0f,
+                             8.0f, 9.0f, 10.0f, 11.0f,
+                             12.0f, 13.0f, 14.0f, 15.0f);
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.glsl
index b86a544..5f8a226 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4 m = mat4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f), vec4(12.0f, 13.0f, 14.0f, 15.0f));
+mat4 m = mat4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f), vec4(12.0f, 13.0f, 14.0f, 15.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.hlsl
index 2707999..6b506f6 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+static float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.msl
index 053e23d..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.spvasm
index 7006fcd..ac2d6d7 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -32,10 +32,12 @@
    %float_14 = OpConstant %float 14
    %float_15 = OpConstant %float 15
          %23 = OpConstantComposite %v4float %float_12 %float_13 %float_14 %float_15
-          %m = OpConstantComposite %mat4v4float %8 %13 %18 %23
+         %24 = OpConstantComposite %mat4v4float %8 %13 %18 %23
+%_ptr_Private_mat4v4float = OpTypePointer Private %mat4v4float
+          %m = OpVariable %_ptr_Private_mat4v4float Private %24
        %void = OpTypeVoid
-         %25 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %25
-         %28 = OpLabel
+         %27 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %27
+         %30 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.wgsl
index 36fe95d..adc3d0c 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat4x4<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f);
+var<private> m = mat4x4<f32>(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f);
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl
index be1d342..62b2ea3 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl
@@ -1,4 +1,4 @@
-let m = mat4x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f),
-                    vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f),
-                    vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f),
-                    vec4<f32>(12.0f, 13.0f, 14.0f, 15.0f));
+var<private> m = mat4x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f),
+                             vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f),
+                             vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f),
+                             vec4<f32>(12.0f, 13.0f, 14.0f, 15.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.glsl
index b86a544..5f8a226 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4 m = mat4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f), vec4(12.0f, 13.0f, 14.0f, 15.0f));
+mat4 m = mat4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f), vec4(12.0f, 13.0f, 14.0f, 15.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.hlsl
index 2707999..6b506f6 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+static float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.msl
index 053e23d..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.spvasm
index 7006fcd..ac2d6d7 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -32,10 +32,12 @@
    %float_14 = OpConstant %float 14
    %float_15 = OpConstant %float 15
          %23 = OpConstantComposite %v4float %float_12 %float_13 %float_14 %float_15
-          %m = OpConstantComposite %mat4v4float %8 %13 %18 %23
+         %24 = OpConstantComposite %mat4v4float %8 %13 %18 %23
+%_ptr_Private_mat4v4float = OpTypePointer Private %mat4v4float
+          %m = OpVariable %_ptr_Private_mat4v4float Private %24
        %void = OpTypeVoid
-         %25 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %25
-         %28 = OpLabel
+         %27 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %27
+         %30 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.wgsl
index a09649c..e3c85d6 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat4x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f), vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f), vec4<f32>(12.0f, 13.0f, 14.0f, 15.0f));
+var<private> m = mat4x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f), vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f), vec4<f32>(12.0f, 13.0f, 14.0f, 15.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl
index 2b9f7e9..3024289 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl
@@ -1,7 +1,7 @@
-let m = mat4x4(mat4x4(0.0f, 1.0f, 2.0f, 3.0f,
-                      4.0f, 5.0f, 6.0f, 7.0f,
-                      8.0f, 9.0f, 10.0f, 11.0f,
-                      12.0f, 13.0f, 14.0f, 15.0f));
+var<private> m = mat4x4(mat4x4(0.0f, 1.0f, 2.0f, 3.0f,
+                               4.0f, 5.0f, 6.0f, 7.0f,
+                               8.0f, 9.0f, 10.0f, 11.0f,
+                               12.0f, 13.0f, 14.0f, 15.0f));
 
 fn f() -> mat4x4<f32> {
     let m_1 = mat4x4(m);
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.glsl
index 737abbe..5b8ecf4 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.glsl
@@ -4,9 +4,9 @@
 void unused_entry_point() {
   return;
 }
-const mat4 m = mat4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f), vec4(12.0f, 13.0f, 14.0f, 15.0f));
+mat4 m = mat4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f), vec4(12.0f, 13.0f, 14.0f, 15.0f));
 mat4 f() {
-  mat4 m_1 = mat4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f), vec4(12.0f, 13.0f, 14.0f, 15.0f));
+  mat4 m_1 = mat4(m);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.hlsl
index cdde3bc..fe1a3a7 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.hlsl
@@ -3,9 +3,9 @@
   return;
 }
 
-static const float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+static float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
 
 float4x4 f() {
-  const float4x4 m_1 = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+  const float4x4 m_1 = float4x4(m);
   return m_1;
 }
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.msl
index 54f69fa..71f0986 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.msl
@@ -1,10 +1,9 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
-
 float4x4 f() {
-  float4x4 const m_1 = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+  thread float4x4 tint_symbol = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+  float4x4 const m_1 = float4x4(tint_symbol);
   return m_1;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.spvasm
index 43fad62..e503126 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -33,15 +33,18 @@
    %float_14 = OpConstant %float 14
    %float_15 = OpConstant %float 15
          %23 = OpConstantComposite %v4float %float_12 %float_13 %float_14 %float_15
-          %m = OpConstantComposite %mat4v4float %8 %13 %18 %23
+         %24 = OpConstantComposite %mat4v4float %8 %13 %18 %23
+%_ptr_Private_mat4v4float = OpTypePointer Private %mat4v4float
+          %m = OpVariable %_ptr_Private_mat4v4float Private %24
        %void = OpTypeVoid
-         %25 = OpTypeFunction %void
-         %29 = OpTypeFunction %mat4v4float
-%unused_entry_point = OpFunction %void None %25
-         %28 = OpLabel
+         %27 = OpTypeFunction %void
+         %31 = OpTypeFunction %mat4v4float
+%unused_entry_point = OpFunction %void None %27
+         %30 = OpLabel
                OpReturn
                OpFunctionEnd
-          %f = OpFunction %mat4v4float None %29
-         %31 = OpLabel
-               OpReturnValue %m
+          %f = OpFunction %mat4v4float None %31
+         %33 = OpLabel
+         %35 = OpLoad %mat4v4float %m
+               OpReturnValue %35
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.wgsl
index b9e9f8f..aa96555 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.wgsl
@@ -1,4 +1,4 @@
-let m = mat4x4(mat4x4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f));
+var<private> m = mat4x4(mat4x4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f));
 
 fn f() -> mat4x4<f32> {
   let m_1 = mat4x4(m);
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl
index 571610f..3339d4d 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl
@@ -1,4 +1,4 @@
-let m = mat4x4(0.0, 1.0, 2.0, 3.0,
-               4.0, 5.0, 6.0, 7.0,
-               8.0, 9.0, 10.0, 11.0,
-               12.0, 13.0, 14.0, 15.0);
+var<private> m = mat4x4(0.0, 1.0, 2.0, 3.0,
+                        4.0, 5.0, 6.0, 7.0,
+                        8.0, 9.0, 10.0, 11.0,
+                        12.0, 13.0, 14.0, 15.0);
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.glsl
index b86a544..5f8a226 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4 m = mat4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f), vec4(12.0f, 13.0f, 14.0f, 15.0f));
+mat4 m = mat4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f), vec4(12.0f, 13.0f, 14.0f, 15.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.hlsl
index 2707999..6b506f6 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+static float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.msl
index 053e23d..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.spvasm
index 7006fcd..ac2d6d7 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -32,10 +32,12 @@
    %float_14 = OpConstant %float 14
    %float_15 = OpConstant %float 15
          %23 = OpConstantComposite %v4float %float_12 %float_13 %float_14 %float_15
-          %m = OpConstantComposite %mat4v4float %8 %13 %18 %23
+         %24 = OpConstantComposite %mat4v4float %8 %13 %18 %23
+%_ptr_Private_mat4v4float = OpTypePointer Private %mat4v4float
+          %m = OpVariable %_ptr_Private_mat4v4float Private %24
        %void = OpTypeVoid
-         %25 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %25
-         %28 = OpLabel
+         %27 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %27
+         %30 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.wgsl
index 33b0598..83572f2 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat4x4(0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0);
+var<private> m = mat4x4(0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0);
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl
index a47089b..178b95b 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl
@@ -1,4 +1,4 @@
-let m = mat4x4(0.0f, 1.0f, 2.0f, 3.0f,
-               4.0f, 5.0f, 6.0f, 7.0f,
-               8.0f, 9.0f, 10.0f, 11.0f,
-               12.0f, 13.0f, 14.0f, 15.0f);
+var<private> m = mat4x4(0.0f, 1.0f, 2.0f, 3.0f,
+                        4.0f, 5.0f, 6.0f, 7.0f,
+                        8.0f, 9.0f, 10.0f, 11.0f,
+                        12.0f, 13.0f, 14.0f, 15.0f);
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.glsl
index b86a544..5f8a226 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4 m = mat4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f), vec4(12.0f, 13.0f, 14.0f, 15.0f));
+mat4 m = mat4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f), vec4(12.0f, 13.0f, 14.0f, 15.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.hlsl
index 2707999..6b506f6 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+static float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.msl
index 053e23d..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.spvasm
index 7006fcd..ac2d6d7 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -32,10 +32,12 @@
    %float_14 = OpConstant %float 14
    %float_15 = OpConstant %float 15
          %23 = OpConstantComposite %v4float %float_12 %float_13 %float_14 %float_15
-          %m = OpConstantComposite %mat4v4float %8 %13 %18 %23
+         %24 = OpConstantComposite %mat4v4float %8 %13 %18 %23
+%_ptr_Private_mat4v4float = OpTypePointer Private %mat4v4float
+          %m = OpVariable %_ptr_Private_mat4v4float Private %24
        %void = OpTypeVoid
-         %25 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %25
-         %28 = OpLabel
+         %27 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %27
+         %30 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.wgsl
index 2374280..ae47f65 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat4x4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f);
+var<private> m = mat4x4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f);
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl
index a11a785..52c70d1 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl
@@ -1,4 +1,4 @@
-let m = mat4x4(vec4(0.0, 1.0, 2.0, 3.0),
-               vec4(4.0, 5.0, 6.0, 7.0),
-               vec4(8.0, 9.0, 10.0, 11.0),
-               vec4(12.0, 13.0, 14.0, 15.0));
+var<private> m = mat4x4(vec4(0.0, 1.0, 2.0, 3.0),
+                        vec4(4.0, 5.0, 6.0, 7.0),
+                        vec4(8.0, 9.0, 10.0, 11.0),
+                        vec4(12.0, 13.0, 14.0, 15.0));
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.glsl
index b86a544..5f8a226 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4 m = mat4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f), vec4(12.0f, 13.0f, 14.0f, 15.0f));
+mat4 m = mat4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f), vec4(12.0f, 13.0f, 14.0f, 15.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.hlsl
index 2707999..6b506f6 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+static float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.msl
index 053e23d..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.spvasm
index 7006fcd..ac2d6d7 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -32,10 +32,12 @@
    %float_14 = OpConstant %float 14
    %float_15 = OpConstant %float 15
          %23 = OpConstantComposite %v4float %float_12 %float_13 %float_14 %float_15
-          %m = OpConstantComposite %mat4v4float %8 %13 %18 %23
+         %24 = OpConstantComposite %mat4v4float %8 %13 %18 %23
+%_ptr_Private_mat4v4float = OpTypePointer Private %mat4v4float
+          %m = OpVariable %_ptr_Private_mat4v4float Private %24
        %void = OpTypeVoid
-         %25 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %25
-         %28 = OpLabel
+         %27 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %27
+         %30 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.wgsl
index faf14ff..13ec29a 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat4x4(vec4(0.0, 1.0, 2.0, 3.0), vec4(4.0, 5.0, 6.0, 7.0), vec4(8.0, 9.0, 10.0, 11.0), vec4(12.0, 13.0, 14.0, 15.0));
+var<private> m = mat4x4(vec4(0.0, 1.0, 2.0, 3.0), vec4(4.0, 5.0, 6.0, 7.0), vec4(8.0, 9.0, 10.0, 11.0), vec4(12.0, 13.0, 14.0, 15.0));
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl
index 77740a2..1e8e479 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl
@@ -1,4 +1,4 @@
-let m = mat4x4(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f),
-               vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f),
-               vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f),
-               vec4<f32>(12.0f, 13.0f, 14.0f, 15.0f));
+var<private> m = mat4x4(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f),
+                        vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f),
+                        vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f),
+                        vec4<f32>(12.0f, 13.0f, 14.0f, 15.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.glsl
index b86a544..5f8a226 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4 m = mat4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f), vec4(12.0f, 13.0f, 14.0f, 15.0f));
+mat4 m = mat4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f), vec4(12.0f, 13.0f, 14.0f, 15.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.hlsl
index 2707999..6b506f6 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+static float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.msl
index 053e23d..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.spvasm
index 7006fcd..ac2d6d7 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -32,10 +32,12 @@
    %float_14 = OpConstant %float 14
    %float_15 = OpConstant %float 15
          %23 = OpConstantComposite %v4float %float_12 %float_13 %float_14 %float_15
-          %m = OpConstantComposite %mat4v4float %8 %13 %18 %23
+         %24 = OpConstantComposite %mat4v4float %8 %13 %18 %23
+%_ptr_Private_mat4v4float = OpTypePointer Private %mat4v4float
+          %m = OpVariable %_ptr_Private_mat4v4float Private %24
        %void = OpTypeVoid
-         %25 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %25
-         %28 = OpLabel
+         %27 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %27
+         %30 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.wgsl
index 7bbde6b..9934a44 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat4x4(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f), vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f), vec4<f32>(12.0f, 13.0f, 14.0f, 15.0f));
+var<private> m = mat4x4(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f), vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f), vec4<f32>(12.0f, 13.0f, 14.0f, 15.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl b/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl
index 1f8286b..9a80a22 100644
--- a/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl
@@ -1 +1 @@
-let m = mat4x4<f32>();
+var<private> m = mat4x4<f32>();
diff --git a/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.glsl
index 1acbb86..b5f43a3 100644
--- a/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4 m = mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f));
+mat4 m = mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.hlsl
index 1efc2bb..a1f75e2 100644
--- a/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float4x4 m = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+static float4x4 m = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
diff --git a/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.msl
index 9389ca4..466ceaa 100644
--- a/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4x4 m = float4x4(float4(0.0f), float4(0.0f), float4(0.0f), float4(0.0f));
-
diff --git a/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.spvasm
index 7f7ca39..fc3f2dd 100644
--- a/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 9
+; Bound: 11
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -12,10 +12,12 @@
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
 %mat4v4float = OpTypeMatrix %v4float 4
-          %m = OpConstantNull %mat4v4float
+          %4 = OpConstantNull %mat4v4float
+%_ptr_Private_mat4v4float = OpTypePointer Private %mat4v4float
+          %m = OpVariable %_ptr_Private_mat4v4float Private %4
        %void = OpTypeVoid
-          %5 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %5
-          %8 = OpLabel
+          %7 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %7
+         %10 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.wgsl
index 1f8286b..9a80a22 100644
--- a/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let m = mat4x4<f32>();
+var<private> m = mat4x4<f32>();
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl b/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl
index c215909..3b03f91 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl
@@ -1 +1 @@
-let v = vec2<bool>(false, true);
+var<private> v = vec2<bool>(false, true);
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.glsl
index bfd0cb7..4d0120f 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const bvec2 v = bvec2(false, true);
+bvec2 v = bvec2(false, true);
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.hlsl
index 0ba8ae6..7c65ba8 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const bool2 v = bool2(false, true);
+static bool2 v = bool2(false, true);
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.msl
index 15bd21b..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant bool2 v = bool2(false, true);
-
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.spvasm
index a686023..f3a9236 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 10
+; Bound: 12
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -13,10 +13,12 @@
      %v2bool = OpTypeVector %bool 2
           %3 = OpConstantNull %bool
        %true = OpConstantTrue %bool
-          %v = OpConstantComposite %v2bool %3 %true
+          %5 = OpConstantComposite %v2bool %3 %true
+%_ptr_Private_v2bool = OpTypePointer Private %v2bool
+          %v = OpVariable %_ptr_Private_v2bool Private %5
        %void = OpTypeVoid
-          %6 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %6
-          %9 = OpLabel
+          %8 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %8
+         %11 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.wgsl
index c215909..3b03f91 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec2<bool>(false, true);
+var<private> v = vec2<bool>(false, true);
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl b/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl
index 074655c..c64a997 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl
@@ -1 +1 @@
-let v = vec2<f32>(0.0f, 1.0f);
+var<private> v = vec2<f32>(0.0f, 1.0f);
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.glsl
index af91949..e6f149f 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const vec2 v = vec2(0.0f, 1.0f);
+vec2 v = vec2(0.0f, 1.0f);
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.hlsl
index 8802bbb..53ed028 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float2 v = float2(0.0f, 1.0f);
+static float2 v = float2(0.0f, 1.0f);
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.msl
index f343a25..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2 v = float2(0.0f, 1.0f);
-
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.spvasm
index 8e31d05..26be830 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 10
+; Bound: 12
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -13,10 +13,12 @@
     %v2float = OpTypeVector %float 2
           %3 = OpConstantNull %float
     %float_1 = OpConstant %float 1
-          %v = OpConstantComposite %v2float %3 %float_1
+          %5 = OpConstantComposite %v2float %3 %float_1
+%_ptr_Private_v2float = OpTypePointer Private %v2float
+          %v = OpVariable %_ptr_Private_v2float Private %5
        %void = OpTypeVoid
-          %6 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %6
-          %9 = OpLabel
+          %8 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %8
+         %11 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.wgsl
index 074655c..c64a997 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec2<f32>(0.0f, 1.0f);
+var<private> v = vec2<f32>(0.0f, 1.0f);
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl b/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl
index ee90f91..684570e 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl
@@ -1 +1 @@
-let v = vec2<i32>(0, 1);
+var<private> v = vec2<i32>(0, 1);
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.glsl
index ebef7ff..cc388f0 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const ivec2 v = ivec2(0, 1);
+ivec2 v = ivec2(0, 1);
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.hlsl
index afa632e..203fe9a 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const int2 v = int2(0, 1);
+static int2 v = int2(0, 1);
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.msl
index af85d23..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant int2 v = int2(0, 1);
-
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.spvasm
index 1c6792f..3fdf50d 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 10
+; Bound: 12
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -13,10 +13,12 @@
       %v2int = OpTypeVector %int 2
           %3 = OpConstantNull %int
       %int_1 = OpConstant %int 1
-          %v = OpConstantComposite %v2int %3 %int_1
+          %5 = OpConstantComposite %v2int %3 %int_1
+%_ptr_Private_v2int = OpTypePointer Private %v2int
+          %v = OpVariable %_ptr_Private_v2int Private %5
        %void = OpTypeVoid
-          %6 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %6
-          %9 = OpLabel
+          %8 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %8
+         %11 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.wgsl
index ee90f91..684570e 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec2<i32>(0, 1);
+var<private> v = vec2<i32>(0, 1);
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl b/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl
index 1b3006c..1d75b1f 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl
@@ -1 +1 @@
-let v = vec2<u32>(0u, 1u);
+var<private> v = vec2<u32>(0u, 1u);
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.glsl
index 9630097..0319a07 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const uvec2 v = uvec2(0u, 1u);
+uvec2 v = uvec2(0u, 1u);
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.hlsl
index c298713..3138b6c 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const uint2 v = uint2(0u, 1u);
+static uint2 v = uint2(0u, 1u);
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.msl
index 764c49a..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant uint2 v = uint2(0u, 1u);
-
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.spvasm
index 7f95ffd..37aa2cb 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 10
+; Bound: 12
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -13,10 +13,12 @@
      %v2uint = OpTypeVector %uint 2
           %3 = OpConstantNull %uint
      %uint_1 = OpConstant %uint 1
-          %v = OpConstantComposite %v2uint %3 %uint_1
+          %5 = OpConstantComposite %v2uint %3 %uint_1
+%_ptr_Private_v2uint = OpTypePointer Private %v2uint
+          %v = OpVariable %_ptr_Private_v2uint Private %5
        %void = OpTypeVoid
-          %6 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %6
-          %9 = OpLabel
+          %8 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %8
+         %11 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.wgsl
index 1b3006c..1d75b1f 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec2<u32>(0u, 1u);
+var<private> v = vec2<u32>(0u, 1u);
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl b/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl
index e0e5dc9..eba6e76 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl
@@ -1 +1 @@
-let v = vec2(0.0, 1.0);
+var<private> v = vec2(0.0, 1.0);
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.glsl
index af91949..e6f149f 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const vec2 v = vec2(0.0f, 1.0f);
+vec2 v = vec2(0.0f, 1.0f);
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.hlsl
index 8802bbb..53ed028 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float2 v = float2(0.0f, 1.0f);
+static float2 v = float2(0.0f, 1.0f);
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.msl
index f343a25..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2 v = float2(0.0f, 1.0f);
-
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.spvasm
index 8e31d05..26be830 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 10
+; Bound: 12
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -13,10 +13,12 @@
     %v2float = OpTypeVector %float 2
           %3 = OpConstantNull %float
     %float_1 = OpConstant %float 1
-          %v = OpConstantComposite %v2float %3 %float_1
+          %5 = OpConstantComposite %v2float %3 %float_1
+%_ptr_Private_v2float = OpTypePointer Private %v2float
+          %v = OpVariable %_ptr_Private_v2float Private %5
        %void = OpTypeVoid
-          %6 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %6
-          %9 = OpLabel
+          %8 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %8
+         %11 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.wgsl
index e0e5dc9..eba6e76 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec2(0.0, 1.0);
+var<private> v = vec2(0.0, 1.0);
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl b/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl
index de5642e..6aabaca 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl
@@ -1 +1 @@
-let v = vec2(0, 1);
+var<private> v = vec2(0, 1);
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.glsl
index ebef7ff..cc388f0 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const ivec2 v = ivec2(0, 1);
+ivec2 v = ivec2(0, 1);
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.hlsl
index afa632e..203fe9a 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const int2 v = int2(0, 1);
+static int2 v = int2(0, 1);
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.msl
index af85d23..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant int2 v = int2(0, 1);
-
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.spvasm
index 1c6792f..3fdf50d 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 10
+; Bound: 12
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -13,10 +13,12 @@
       %v2int = OpTypeVector %int 2
           %3 = OpConstantNull %int
       %int_1 = OpConstant %int 1
-          %v = OpConstantComposite %v2int %3 %int_1
+          %5 = OpConstantComposite %v2int %3 %int_1
+%_ptr_Private_v2int = OpTypePointer Private %v2int
+          %v = OpVariable %_ptr_Private_v2int Private %5
        %void = OpTypeVoid
-          %6 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %6
-          %9 = OpLabel
+          %8 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %8
+         %11 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.wgsl
index de5642e..6aabaca 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec2(0, 1);
+var<private> v = vec2(0, 1);
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl b/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl
index f5aced3..c5bc0b1 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl
@@ -1 +1 @@
-let v = vec2(false, true);
+var<private> v = vec2(false, true);
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.glsl
index bfd0cb7..4d0120f 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const bvec2 v = bvec2(false, true);
+bvec2 v = bvec2(false, true);
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.hlsl
index 0ba8ae6..7c65ba8 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const bool2 v = bool2(false, true);
+static bool2 v = bool2(false, true);
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.msl
index 15bd21b..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant bool2 v = bool2(false, true);
-
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.spvasm
index a686023..f3a9236 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 10
+; Bound: 12
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -13,10 +13,12 @@
      %v2bool = OpTypeVector %bool 2
           %3 = OpConstantNull %bool
        %true = OpConstantTrue %bool
-          %v = OpConstantComposite %v2bool %3 %true
+          %5 = OpConstantComposite %v2bool %3 %true
+%_ptr_Private_v2bool = OpTypePointer Private %v2bool
+          %v = OpVariable %_ptr_Private_v2bool Private %5
        %void = OpTypeVoid
-          %6 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %6
-          %9 = OpLabel
+          %8 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %8
+         %11 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.wgsl
index f5aced3..c5bc0b1 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec2(false, true);
+var<private> v = vec2(false, true);
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl b/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl
index 3ca3308..03994f3 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl
@@ -1 +1 @@
-let v = vec2(0.0f, 1.0f);
+var<private> v = vec2(0.0f, 1.0f);
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.glsl
index af91949..e6f149f 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const vec2 v = vec2(0.0f, 1.0f);
+vec2 v = vec2(0.0f, 1.0f);
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.hlsl
index 8802bbb..53ed028 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float2 v = float2(0.0f, 1.0f);
+static float2 v = float2(0.0f, 1.0f);
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.msl
index f343a25..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float2 v = float2(0.0f, 1.0f);
-
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.spvasm
index 8e31d05..26be830 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 10
+; Bound: 12
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -13,10 +13,12 @@
     %v2float = OpTypeVector %float 2
           %3 = OpConstantNull %float
     %float_1 = OpConstant %float 1
-          %v = OpConstantComposite %v2float %3 %float_1
+          %5 = OpConstantComposite %v2float %3 %float_1
+%_ptr_Private_v2float = OpTypePointer Private %v2float
+          %v = OpVariable %_ptr_Private_v2float Private %5
        %void = OpTypeVoid
-          %6 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %6
-          %9 = OpLabel
+          %8 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %8
+         %11 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.wgsl
index 3ca3308..03994f3 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec2(0.0f, 1.0f);
+var<private> v = vec2(0.0f, 1.0f);
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl b/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl
index 7207f34..4ea409d 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl
@@ -1 +1 @@
-let v = vec2(0i, 1i);
+var<private> v = vec2(0i, 1i);
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.glsl
index ebef7ff..cc388f0 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const ivec2 v = ivec2(0, 1);
+ivec2 v = ivec2(0, 1);
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.hlsl
index afa632e..203fe9a 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const int2 v = int2(0, 1);
+static int2 v = int2(0, 1);
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.msl
index af85d23..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant int2 v = int2(0, 1);
-
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.spvasm
index 1c6792f..3fdf50d 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 10
+; Bound: 12
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -13,10 +13,12 @@
       %v2int = OpTypeVector %int 2
           %3 = OpConstantNull %int
       %int_1 = OpConstant %int 1
-          %v = OpConstantComposite %v2int %3 %int_1
+          %5 = OpConstantComposite %v2int %3 %int_1
+%_ptr_Private_v2int = OpTypePointer Private %v2int
+          %v = OpVariable %_ptr_Private_v2int Private %5
        %void = OpTypeVoid
-          %6 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %6
-          %9 = OpLabel
+          %8 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %8
+         %11 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.wgsl
index 7207f34..4ea409d 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec2(0i, 1i);
+var<private> v = vec2(0i, 1i);
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl b/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl
index bd3e939..dafac2d 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl
@@ -1 +1 @@
-let v = vec2(0u, 1u);
+var<private> v = vec2(0u, 1u);
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.glsl
index 9630097..0319a07 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const uvec2 v = uvec2(0u, 1u);
+uvec2 v = uvec2(0u, 1u);
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.hlsl
index c298713..3138b6c 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const uint2 v = uint2(0u, 1u);
+static uint2 v = uint2(0u, 1u);
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.msl
index 764c49a..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant uint2 v = uint2(0u, 1u);
-
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.spvasm
index 7f95ffd..37aa2cb 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 10
+; Bound: 12
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -13,10 +13,12 @@
      %v2uint = OpTypeVector %uint 2
           %3 = OpConstantNull %uint
      %uint_1 = OpConstant %uint 1
-          %v = OpConstantComposite %v2uint %3 %uint_1
+          %5 = OpConstantComposite %v2uint %3 %uint_1
+%_ptr_Private_v2uint = OpTypePointer Private %v2uint
+          %v = OpVariable %_ptr_Private_v2uint Private %5
        %void = OpTypeVoid
-          %6 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %6
-          %9 = OpLabel
+          %8 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %8
+         %11 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.wgsl
index bd3e939..dafac2d 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec2(0u, 1u);
+var<private> v = vec2(0u, 1u);
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl b/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl
index 0acf3bf..aeee5a2 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl
@@ -1 +1 @@
-let v = vec3<bool>(false, true, false);
+var<private> v = vec3<bool>(false, true, false);
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.glsl
index e7d7818..872f1a2 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const bvec3 v = bvec3(false, true, false);
+bvec3 v = bvec3(false, true, false);
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.hlsl
index d5acfa0..420e0c3 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const bool3 v = bool3(false, true, false);
+static bool3 v = bool3(false, true, false);
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.msl
index 0cd9b5b..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant bool3 v = bool3(false, true, false);
-
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.spvasm
index 4abfaa6..587225f 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 10
+; Bound: 12
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -13,10 +13,12 @@
      %v3bool = OpTypeVector %bool 3
           %3 = OpConstantNull %bool
        %true = OpConstantTrue %bool
-          %v = OpConstantComposite %v3bool %3 %true %3
+          %5 = OpConstantComposite %v3bool %3 %true %3
+%_ptr_Private_v3bool = OpTypePointer Private %v3bool
+          %v = OpVariable %_ptr_Private_v3bool Private %5
        %void = OpTypeVoid
-          %6 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %6
-          %9 = OpLabel
+          %8 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %8
+         %11 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.wgsl
index 0acf3bf..aeee5a2 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec3<bool>(false, true, false);
+var<private> v = vec3<bool>(false, true, false);
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl b/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl
index 0978438..2815001 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl
@@ -1 +1 @@
-let v = vec3<f32>(0.0f, 1.0f, 2.0f);
+var<private> v = vec3<f32>(0.0f, 1.0f, 2.0f);
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.glsl
index 9f73b75..f63fa39 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const vec3 v = vec3(0.0f, 1.0f, 2.0f);
+vec3 v = vec3(0.0f, 1.0f, 2.0f);
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.hlsl
index daa5a1c..f2ffb86 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float3 v = float3(0.0f, 1.0f, 2.0f);
+static float3 v = float3(0.0f, 1.0f, 2.0f);
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.msl
index b0b245a..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3 v = float3(0.0f, 1.0f, 2.0f);
-
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.spvasm
index 5dde9d6..5df28a4 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 11
+; Bound: 13
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -14,10 +14,12 @@
           %3 = OpConstantNull %float
     %float_1 = OpConstant %float 1
     %float_2 = OpConstant %float 2
-          %v = OpConstantComposite %v3float %3 %float_1 %float_2
+          %6 = OpConstantComposite %v3float %3 %float_1 %float_2
+%_ptr_Private_v3float = OpTypePointer Private %v3float
+          %v = OpVariable %_ptr_Private_v3float Private %6
        %void = OpTypeVoid
-          %7 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %7
-         %10 = OpLabel
+          %9 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %9
+         %12 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.wgsl
index 0978438..2815001 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec3<f32>(0.0f, 1.0f, 2.0f);
+var<private> v = vec3<f32>(0.0f, 1.0f, 2.0f);
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl b/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl
index 605fa30..434bb56 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl
@@ -1 +1 @@
-let v = vec3<i32>(0i, 1i, 2i);
+var<private> v = vec3<i32>(0i, 1i, 2i);
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.glsl
index 0392e70..26b5581 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const ivec3 v = ivec3(0, 1, 2);
+ivec3 v = ivec3(0, 1, 2);
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.hlsl
index 9bc1dc4..fcb0802 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const int3 v = int3(0, 1, 2);
+static int3 v = int3(0, 1, 2);
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.msl
index 63fbce8..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant int3 v = int3(0, 1, 2);
-
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.spvasm
index 20bcaa8..68ed2d6 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 11
+; Bound: 13
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -14,10 +14,12 @@
           %3 = OpConstantNull %int
       %int_1 = OpConstant %int 1
       %int_2 = OpConstant %int 2
-          %v = OpConstantComposite %v3int %3 %int_1 %int_2
+          %6 = OpConstantComposite %v3int %3 %int_1 %int_2
+%_ptr_Private_v3int = OpTypePointer Private %v3int
+          %v = OpVariable %_ptr_Private_v3int Private %6
        %void = OpTypeVoid
-          %7 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %7
-         %10 = OpLabel
+          %9 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %9
+         %12 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.wgsl
index 605fa30..434bb56 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec3<i32>(0i, 1i, 2i);
+var<private> v = vec3<i32>(0i, 1i, 2i);
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl b/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl
index 111a1d3..ab0e797 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl
@@ -1 +1 @@
-let v = vec3<u32>(0u, 1u, 2u);
+var<private> v = vec3<u32>(0u, 1u, 2u);
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.glsl
index 1aabf2d..7187970 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const uvec3 v = uvec3(0u, 1u, 2u);
+uvec3 v = uvec3(0u, 1u, 2u);
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.hlsl
index 18899ea..3190b32 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const uint3 v = uint3(0u, 1u, 2u);
+static uint3 v = uint3(0u, 1u, 2u);
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.msl
index 6090ecf..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant uint3 v = uint3(0u, 1u, 2u);
-
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.spvasm
index 74c3ed3..1e4e51f 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 11
+; Bound: 13
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -14,10 +14,12 @@
           %3 = OpConstantNull %uint
      %uint_1 = OpConstant %uint 1
      %uint_2 = OpConstant %uint 2
-          %v = OpConstantComposite %v3uint %3 %uint_1 %uint_2
+          %6 = OpConstantComposite %v3uint %3 %uint_1 %uint_2
+%_ptr_Private_v3uint = OpTypePointer Private %v3uint
+          %v = OpVariable %_ptr_Private_v3uint Private %6
        %void = OpTypeVoid
-          %7 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %7
-         %10 = OpLabel
+          %9 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %9
+         %12 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.wgsl
index 111a1d3..ab0e797 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec3<u32>(0u, 1u, 2u);
+var<private> v = vec3<u32>(0u, 1u, 2u);
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl b/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl
index 376f901c..2b4faac 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl
@@ -1 +1 @@
-let v = vec3(0.0, 1.0, 2.0);
+var<private> v = vec3(0.0, 1.0, 2.0);
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.glsl
index 9f73b75..f63fa39 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const vec3 v = vec3(0.0f, 1.0f, 2.0f);
+vec3 v = vec3(0.0f, 1.0f, 2.0f);
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.hlsl
index daa5a1c..f2ffb86 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float3 v = float3(0.0f, 1.0f, 2.0f);
+static float3 v = float3(0.0f, 1.0f, 2.0f);
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.msl
index b0b245a..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3 v = float3(0.0f, 1.0f, 2.0f);
-
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.spvasm
index 5dde9d6..5df28a4 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 11
+; Bound: 13
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -14,10 +14,12 @@
           %3 = OpConstantNull %float
     %float_1 = OpConstant %float 1
     %float_2 = OpConstant %float 2
-          %v = OpConstantComposite %v3float %3 %float_1 %float_2
+          %6 = OpConstantComposite %v3float %3 %float_1 %float_2
+%_ptr_Private_v3float = OpTypePointer Private %v3float
+          %v = OpVariable %_ptr_Private_v3float Private %6
        %void = OpTypeVoid
-          %7 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %7
-         %10 = OpLabel
+          %9 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %9
+         %12 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.wgsl
index 376f901c..2b4faac 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec3(0.0, 1.0, 2.0);
+var<private> v = vec3(0.0, 1.0, 2.0);
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl b/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl
index 7b9ebcb..1c301e1 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl
@@ -1 +1 @@
-let v = vec3(0, 1, 2);
+var<private> v = vec3(0, 1, 2);
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.glsl
index 0392e70..26b5581 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const ivec3 v = ivec3(0, 1, 2);
+ivec3 v = ivec3(0, 1, 2);
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.hlsl
index 9bc1dc4..fcb0802 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const int3 v = int3(0, 1, 2);
+static int3 v = int3(0, 1, 2);
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.msl
index 63fbce8..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant int3 v = int3(0, 1, 2);
-
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.spvasm
index 20bcaa8..68ed2d6 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 11
+; Bound: 13
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -14,10 +14,12 @@
           %3 = OpConstantNull %int
       %int_1 = OpConstant %int 1
       %int_2 = OpConstant %int 2
-          %v = OpConstantComposite %v3int %3 %int_1 %int_2
+          %6 = OpConstantComposite %v3int %3 %int_1 %int_2
+%_ptr_Private_v3int = OpTypePointer Private %v3int
+          %v = OpVariable %_ptr_Private_v3int Private %6
        %void = OpTypeVoid
-          %7 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %7
-         %10 = OpLabel
+          %9 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %9
+         %12 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.wgsl
index 7b9ebcb..1c301e1 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec3(0, 1, 2);
+var<private> v = vec3(0, 1, 2);
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl b/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl
index 9f3a1f3..741e882 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl
@@ -1 +1 @@
-let v = vec3(false, true, false);
+var<private> v = vec3(false, true, false);
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.glsl
index e7d7818..872f1a2 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const bvec3 v = bvec3(false, true, false);
+bvec3 v = bvec3(false, true, false);
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.hlsl
index d5acfa0..420e0c3 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const bool3 v = bool3(false, true, false);
+static bool3 v = bool3(false, true, false);
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.msl
index 0cd9b5b..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant bool3 v = bool3(false, true, false);
-
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.spvasm
index 4abfaa6..587225f 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 10
+; Bound: 12
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -13,10 +13,12 @@
      %v3bool = OpTypeVector %bool 3
           %3 = OpConstantNull %bool
        %true = OpConstantTrue %bool
-          %v = OpConstantComposite %v3bool %3 %true %3
+          %5 = OpConstantComposite %v3bool %3 %true %3
+%_ptr_Private_v3bool = OpTypePointer Private %v3bool
+          %v = OpVariable %_ptr_Private_v3bool Private %5
        %void = OpTypeVoid
-          %6 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %6
-          %9 = OpLabel
+          %8 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %8
+         %11 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.wgsl
index 9f3a1f3..741e882 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec3(false, true, false);
+var<private> v = vec3(false, true, false);
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl b/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl
index e09c928..05ccfdd 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl
@@ -1 +1 @@
-let v = vec3(0.0f, 1.0f, 2.0f);
+var<private> v = vec3(0.0f, 1.0f, 2.0f);
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.glsl
index 9f73b75..f63fa39 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const vec3 v = vec3(0.0f, 1.0f, 2.0f);
+vec3 v = vec3(0.0f, 1.0f, 2.0f);
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.hlsl
index daa5a1c..f2ffb86 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float3 v = float3(0.0f, 1.0f, 2.0f);
+static float3 v = float3(0.0f, 1.0f, 2.0f);
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.msl
index b0b245a..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float3 v = float3(0.0f, 1.0f, 2.0f);
-
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.spvasm
index 5dde9d6..5df28a4 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 11
+; Bound: 13
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -14,10 +14,12 @@
           %3 = OpConstantNull %float
     %float_1 = OpConstant %float 1
     %float_2 = OpConstant %float 2
-          %v = OpConstantComposite %v3float %3 %float_1 %float_2
+          %6 = OpConstantComposite %v3float %3 %float_1 %float_2
+%_ptr_Private_v3float = OpTypePointer Private %v3float
+          %v = OpVariable %_ptr_Private_v3float Private %6
        %void = OpTypeVoid
-          %7 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %7
-         %10 = OpLabel
+          %9 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %9
+         %12 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.wgsl
index e09c928..05ccfdd 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec3(0.0f, 1.0f, 2.0f);
+var<private> v = vec3(0.0f, 1.0f, 2.0f);
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl b/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl
index 73cd973..1fbcabe 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl
@@ -1 +1 @@
-let v = vec3(0i, 1i, 2i);
+var<private> v = vec3(0i, 1i, 2i);
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.glsl
index 0392e70..26b5581 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const ivec3 v = ivec3(0, 1, 2);
+ivec3 v = ivec3(0, 1, 2);
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.hlsl
index 9bc1dc4..fcb0802 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const int3 v = int3(0, 1, 2);
+static int3 v = int3(0, 1, 2);
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.msl
index 63fbce8..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant int3 v = int3(0, 1, 2);
-
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.spvasm
index 20bcaa8..68ed2d6 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 11
+; Bound: 13
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -14,10 +14,12 @@
           %3 = OpConstantNull %int
       %int_1 = OpConstant %int 1
       %int_2 = OpConstant %int 2
-          %v = OpConstantComposite %v3int %3 %int_1 %int_2
+          %6 = OpConstantComposite %v3int %3 %int_1 %int_2
+%_ptr_Private_v3int = OpTypePointer Private %v3int
+          %v = OpVariable %_ptr_Private_v3int Private %6
        %void = OpTypeVoid
-          %7 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %7
-         %10 = OpLabel
+          %9 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %9
+         %12 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.wgsl
index 73cd973..1fbcabe 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec3(0i, 1i, 2i);
+var<private> v = vec3(0i, 1i, 2i);
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl b/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl
index 0040d27..8b6ff5a 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl
@@ -1 +1 @@
-let v = vec3(0u, 1u, 2u);
+var<private> v = vec3(0u, 1u, 2u);
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.glsl
index 1aabf2d..7187970 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const uvec3 v = uvec3(0u, 1u, 2u);
+uvec3 v = uvec3(0u, 1u, 2u);
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.hlsl
index 18899ea..3190b32 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const uint3 v = uint3(0u, 1u, 2u);
+static uint3 v = uint3(0u, 1u, 2u);
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.msl
index 6090ecf..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant uint3 v = uint3(0u, 1u, 2u);
-
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.spvasm
index 74c3ed3..1e4e51f 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 11
+; Bound: 13
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -14,10 +14,12 @@
           %3 = OpConstantNull %uint
      %uint_1 = OpConstant %uint 1
      %uint_2 = OpConstant %uint 2
-          %v = OpConstantComposite %v3uint %3 %uint_1 %uint_2
+          %6 = OpConstantComposite %v3uint %3 %uint_1 %uint_2
+%_ptr_Private_v3uint = OpTypePointer Private %v3uint
+          %v = OpVariable %_ptr_Private_v3uint Private %6
        %void = OpTypeVoid
-          %7 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %7
-         %10 = OpLabel
+          %9 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %9
+         %12 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.wgsl
index 0040d27..8b6ff5a 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec3(0u, 1u, 2u);
+var<private> v = vec3(0u, 1u, 2u);
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl b/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl
index baeff0f..118eaf5 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl
@@ -1 +1 @@
-let v = vec4(false, true, false, true);
+var<private> v = vec4(false, true, false, true);
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.glsl
index 11236db..6b3de93 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const bvec4 v = bvec4(false, true, false, true);
+bvec4 v = bvec4(false, true, false, true);
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.hlsl
index af7e30f..0c15046 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const bool4 v = bool4(false, true, false, true);
+static bool4 v = bool4(false, true, false, true);
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.msl
index 840b113..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant bool4 v = bool4(false, true, false, true);
-
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.spvasm
index e5ad229..32c8adc 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 10
+; Bound: 12
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -13,10 +13,12 @@
      %v4bool = OpTypeVector %bool 4
           %3 = OpConstantNull %bool
        %true = OpConstantTrue %bool
-          %v = OpConstantComposite %v4bool %3 %true %3 %true
+          %5 = OpConstantComposite %v4bool %3 %true %3 %true
+%_ptr_Private_v4bool = OpTypePointer Private %v4bool
+          %v = OpVariable %_ptr_Private_v4bool Private %5
        %void = OpTypeVoid
-          %6 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %6
-          %9 = OpLabel
+          %8 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %8
+         %11 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.wgsl
index baeff0f..118eaf5 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec4(false, true, false, true);
+var<private> v = vec4(false, true, false, true);
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl b/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl
index 5a04e5b..9ade06d 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl
@@ -1 +1 @@
-let v = vec4(0.f, 1.f, 2.f, 3.f);
+var<private> v = vec4(0.f, 1.f, 2.f, 3.f);
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.glsl
index 254bda9..b053214 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const vec4 v = vec4(0.0f, 1.0f, 2.0f, 3.0f);
+vec4 v = vec4(0.0f, 1.0f, 2.0f, 3.0f);
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.hlsl
index bd679f3..f518edb 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float4 v = float4(0.0f, 1.0f, 2.0f, 3.0f);
+static float4 v = float4(0.0f, 1.0f, 2.0f, 3.0f);
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.msl
index 568e746..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4 v = float4(0.0f, 1.0f, 2.0f, 3.0f);
-
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.spvasm
index a45788b..d98cea5 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 12
+; Bound: 14
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -15,10 +15,12 @@
     %float_1 = OpConstant %float 1
     %float_2 = OpConstant %float 2
     %float_3 = OpConstant %float 3
-          %v = OpConstantComposite %v4float %3 %float_1 %float_2 %float_3
+          %7 = OpConstantComposite %v4float %3 %float_1 %float_2 %float_3
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+          %v = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
-          %8 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %8
-         %11 = OpLabel
+         %10 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %10
+         %13 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.wgsl
index 89c6254..27e5285 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec4(0.0f, 1.0f, 2.0f, 3.0f);
+var<private> v = vec4(0.0f, 1.0f, 2.0f, 3.0f);
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl b/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl
index 38a4ff8..b274f75 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl
@@ -1 +1 @@
-let v = vec4(0i, 1i, 2i, 3i);
+var<private> v = vec4(0i, 1i, 2i, 3i);
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.glsl
index 77c907b..b7c56a2 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const ivec4 v = ivec4(0, 1, 2, 3);
+ivec4 v = ivec4(0, 1, 2, 3);
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.hlsl
index 58b86ce..baeb427 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const int4 v = int4(0, 1, 2, 3);
+static int4 v = int4(0, 1, 2, 3);
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.msl
index f00d2eb..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant int4 v = int4(0, 1, 2, 3);
-
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.spvasm
index 8518f99..98f0347 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 12
+; Bound: 14
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -15,10 +15,12 @@
       %int_1 = OpConstant %int 1
       %int_2 = OpConstant %int 2
       %int_3 = OpConstant %int 3
-          %v = OpConstantComposite %v4int %3 %int_1 %int_2 %int_3
+          %7 = OpConstantComposite %v4int %3 %int_1 %int_2 %int_3
+%_ptr_Private_v4int = OpTypePointer Private %v4int
+          %v = OpVariable %_ptr_Private_v4int Private %7
        %void = OpTypeVoid
-          %8 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %8
-         %11 = OpLabel
+         %10 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %10
+         %13 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.wgsl
index 38a4ff8..b274f75 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec4(0i, 1i, 2i, 3i);
+var<private> v = vec4(0i, 1i, 2i, 3i);
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl b/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl
index ef7c766..0c12dbf 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl
@@ -1 +1 @@
-let v = vec4(0u, 1u, 2u, 3u);
+var<private> v = vec4(0u, 1u, 2u, 3u);
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.glsl
index a6bfcae..8414d82 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const uvec4 v = uvec4(0u, 1u, 2u, 3u);
+uvec4 v = uvec4(0u, 1u, 2u, 3u);
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.hlsl
index 014390a..2ab778a 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const uint4 v = uint4(0u, 1u, 2u, 3u);
+static uint4 v = uint4(0u, 1u, 2u, 3u);
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.msl
index 83695b8..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant uint4 v = uint4(0u, 1u, 2u, 3u);
-
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.spvasm
index 2424ee0..b2ae7f4 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 12
+; Bound: 14
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -15,10 +15,12 @@
      %uint_1 = OpConstant %uint 1
      %uint_2 = OpConstant %uint 2
      %uint_3 = OpConstant %uint 3
-          %v = OpConstantComposite %v4uint %3 %uint_1 %uint_2 %uint_3
+          %7 = OpConstantComposite %v4uint %3 %uint_1 %uint_2 %uint_3
+%_ptr_Private_v4uint = OpTypePointer Private %v4uint
+          %v = OpVariable %_ptr_Private_v4uint Private %7
        %void = OpTypeVoid
-          %8 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %8
-         %11 = OpLabel
+         %10 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %10
+         %13 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.wgsl
index ef7c766..0c12dbf 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec4(0u, 1u, 2u, 3u);
+var<private> v = vec4(0u, 1u, 2u, 3u);
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl b/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl
index bb1280e..3d81ce6 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl
@@ -1 +1 @@
-let v = vec4(0.0, 1.0, 2.0, 3.0);
+var<private> v = vec4(0.0, 1.0, 2.0, 3.0);
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.glsl
index 254bda9..b053214 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const vec4 v = vec4(0.0f, 1.0f, 2.0f, 3.0f);
+vec4 v = vec4(0.0f, 1.0f, 2.0f, 3.0f);
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.hlsl
index bd679f3..f518edb 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float4 v = float4(0.0f, 1.0f, 2.0f, 3.0f);
+static float4 v = float4(0.0f, 1.0f, 2.0f, 3.0f);
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.msl
index 568e746..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4 v = float4(0.0f, 1.0f, 2.0f, 3.0f);
-
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.spvasm
index a45788b..d98cea5 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 12
+; Bound: 14
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -15,10 +15,12 @@
     %float_1 = OpConstant %float 1
     %float_2 = OpConstant %float 2
     %float_3 = OpConstant %float 3
-          %v = OpConstantComposite %v4float %3 %float_1 %float_2 %float_3
+          %7 = OpConstantComposite %v4float %3 %float_1 %float_2 %float_3
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+          %v = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
-          %8 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %8
-         %11 = OpLabel
+         %10 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %10
+         %13 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.wgsl
index bb1280e..3d81ce6 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec4(0.0, 1.0, 2.0, 3.0);
+var<private> v = vec4(0.0, 1.0, 2.0, 3.0);
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl b/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl
index ab60e6e..f59b42c 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl
@@ -1 +1 @@
-let v = vec4(0, 1, 2, 3);
+var<private> v = vec4(0, 1, 2, 3);
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.glsl
index 77c907b..b7c56a2 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const ivec4 v = ivec4(0, 1, 2, 3);
+ivec4 v = ivec4(0, 1, 2, 3);
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.hlsl
index 58b86ce..baeb427 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const int4 v = int4(0, 1, 2, 3);
+static int4 v = int4(0, 1, 2, 3);
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.msl
index f00d2eb..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant int4 v = int4(0, 1, 2, 3);
-
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.spvasm
index 8518f99..98f0347 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 12
+; Bound: 14
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -15,10 +15,12 @@
       %int_1 = OpConstant %int 1
       %int_2 = OpConstant %int 2
       %int_3 = OpConstant %int 3
-          %v = OpConstantComposite %v4int %3 %int_1 %int_2 %int_3
+          %7 = OpConstantComposite %v4int %3 %int_1 %int_2 %int_3
+%_ptr_Private_v4int = OpTypePointer Private %v4int
+          %v = OpVariable %_ptr_Private_v4int Private %7
        %void = OpTypeVoid
-          %8 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %8
-         %11 = OpLabel
+         %10 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %10
+         %13 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.wgsl
index ab60e6e..f59b42c 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec4(0, 1, 2, 3);
+var<private> v = vec4(0, 1, 2, 3);
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl b/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl
index baeff0f..118eaf5 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl
@@ -1 +1 @@
-let v = vec4(false, true, false, true);
+var<private> v = vec4(false, true, false, true);
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.glsl
index 11236db..6b3de93 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const bvec4 v = bvec4(false, true, false, true);
+bvec4 v = bvec4(false, true, false, true);
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.hlsl
index af7e30f..0c15046 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const bool4 v = bool4(false, true, false, true);
+static bool4 v = bool4(false, true, false, true);
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.msl
index 840b113..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant bool4 v = bool4(false, true, false, true);
-
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.spvasm
index e5ad229..32c8adc 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 10
+; Bound: 12
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -13,10 +13,12 @@
      %v4bool = OpTypeVector %bool 4
           %3 = OpConstantNull %bool
        %true = OpConstantTrue %bool
-          %v = OpConstantComposite %v4bool %3 %true %3 %true
+          %5 = OpConstantComposite %v4bool %3 %true %3 %true
+%_ptr_Private_v4bool = OpTypePointer Private %v4bool
+          %v = OpVariable %_ptr_Private_v4bool Private %5
        %void = OpTypeVoid
-          %6 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %6
-          %9 = OpLabel
+          %8 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %8
+         %11 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.wgsl
index baeff0f..118eaf5 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec4(false, true, false, true);
+var<private> v = vec4(false, true, false, true);
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl b/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl
index 89c6254..27e5285 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl
@@ -1 +1 @@
-let v = vec4(0.0f, 1.0f, 2.0f, 3.0f);
+var<private> v = vec4(0.0f, 1.0f, 2.0f, 3.0f);
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.glsl
index 254bda9..b053214 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const vec4 v = vec4(0.0f, 1.0f, 2.0f, 3.0f);
+vec4 v = vec4(0.0f, 1.0f, 2.0f, 3.0f);
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.hlsl
index bd679f3..f518edb 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const float4 v = float4(0.0f, 1.0f, 2.0f, 3.0f);
+static float4 v = float4(0.0f, 1.0f, 2.0f, 3.0f);
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.msl
index 568e746..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant float4 v = float4(0.0f, 1.0f, 2.0f, 3.0f);
-
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.spvasm
index a45788b..d98cea5 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 12
+; Bound: 14
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -15,10 +15,12 @@
     %float_1 = OpConstant %float 1
     %float_2 = OpConstant %float 2
     %float_3 = OpConstant %float 3
-          %v = OpConstantComposite %v4float %3 %float_1 %float_2 %float_3
+          %7 = OpConstantComposite %v4float %3 %float_1 %float_2 %float_3
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+          %v = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
-          %8 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %8
-         %11 = OpLabel
+         %10 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %10
+         %13 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.wgsl
index 89c6254..27e5285 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec4(0.0f, 1.0f, 2.0f, 3.0f);
+var<private> v = vec4(0.0f, 1.0f, 2.0f, 3.0f);
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl b/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl
index 38a4ff8..b274f75 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl
@@ -1 +1 @@
-let v = vec4(0i, 1i, 2i, 3i);
+var<private> v = vec4(0i, 1i, 2i, 3i);
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.glsl
index 77c907b..b7c56a2 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const ivec4 v = ivec4(0, 1, 2, 3);
+ivec4 v = ivec4(0, 1, 2, 3);
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.hlsl
index 58b86ce..baeb427 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const int4 v = int4(0, 1, 2, 3);
+static int4 v = int4(0, 1, 2, 3);
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.msl
index f00d2eb..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant int4 v = int4(0, 1, 2, 3);
-
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.spvasm
index 8518f99..98f0347 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 12
+; Bound: 14
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -15,10 +15,12 @@
       %int_1 = OpConstant %int 1
       %int_2 = OpConstant %int 2
       %int_3 = OpConstant %int 3
-          %v = OpConstantComposite %v4int %3 %int_1 %int_2 %int_3
+          %7 = OpConstantComposite %v4int %3 %int_1 %int_2 %int_3
+%_ptr_Private_v4int = OpTypePointer Private %v4int
+          %v = OpVariable %_ptr_Private_v4int Private %7
        %void = OpTypeVoid
-          %8 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %8
-         %11 = OpLabel
+         %10 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %10
+         %13 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.wgsl
index 38a4ff8..b274f75 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec4(0i, 1i, 2i, 3i);
+var<private> v = vec4(0i, 1i, 2i, 3i);
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl b/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl
index ef7c766..0c12dbf 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl
@@ -1 +1 @@
-let v = vec4(0u, 1u, 2u, 3u);
+var<private> v = vec4(0u, 1u, 2u, 3u);
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.glsl
index a6bfcae..8414d82 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const uvec4 v = uvec4(0u, 1u, 2u, 3u);
+uvec4 v = uvec4(0u, 1u, 2u, 3u);
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.hlsl b/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.hlsl
index 014390a..2ab778a 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.hlsl
@@ -3,4 +3,4 @@
   return;
 }
 
-static const uint4 v = uint4(0u, 1u, 2u, 3u);
+static uint4 v = uint4(0u, 1u, 2u, 3u);
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.msl b/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.msl
index 83695b8..466ceaa 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.msl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.msl
@@ -1,5 +1,3 @@
 #include <metal_stdlib>
 
 using namespace metal;
-constant uint4 v = uint4(0u, 1u, 2u, 3u);
-
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.spvasm b/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.spvasm
index 2424ee0..b2ae7f4 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.spvasm
+++ b/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 12
+; Bound: 14
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -15,10 +15,12 @@
      %uint_1 = OpConstant %uint 1
      %uint_2 = OpConstant %uint 2
      %uint_3 = OpConstant %uint 3
-          %v = OpConstantComposite %v4uint %3 %uint_1 %uint_2 %uint_3
+          %7 = OpConstantComposite %v4uint %3 %uint_1 %uint_2 %uint_3
+%_ptr_Private_v4uint = OpTypePointer Private %v4uint
+          %v = OpVariable %_ptr_Private_v4uint Private %7
        %void = OpTypeVoid
-          %8 = OpTypeFunction %void
-%unused_entry_point = OpFunction %void None %8
-         %11 = OpLabel
+         %10 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %10
+         %13 = OpLabel
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.wgsl b/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.wgsl
index ef7c766..0c12dbf 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.wgsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.wgsl
@@ -1 +1 @@
-let v = vec4(0u, 1u, 2u, 3u);
+var<private> v = vec4(0u, 1u, 2u, 3u);
