diff --git a/test/expressions/type_ctor/vec2/explicit/bool.wgsl b/test/expressions/type_ctor/vec2/explicit/bool.wgsl
new file mode 100644
index 0000000..c215909
--- /dev/null
+++ b/test/expressions/type_ctor/vec2/explicit/bool.wgsl
@@ -0,0 +1 @@
+let v = vec2<bool>(false, true);
diff --git a/test/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.hlsl b/test/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.hlsl
new file mode 100644
index 0000000..0ba8ae6
--- /dev/null
+++ b/test/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.hlsl
@@ -0,0 +1,6 @@
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+  return;
+}
+
+static const bool2 v = bool2(false, true);
diff --git a/test/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.msl b/test/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.msl
new file mode 100644
index 0000000..3103a85
--- /dev/null
+++ b/test/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.msl
@@ -0,0 +1,4 @@
+#include <metal_stdlib>
+
+using namespace metal;
+constant bool2 v = bool2(false, true);
diff --git a/test/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.spvasm b/test/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.spvasm
new file mode 100644
index 0000000..b982dbd
--- /dev/null
+++ b/test/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.spvasm
@@ -0,0 +1,22 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 10
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
+               OpExecutionMode %unused_entry_point LocalSize 1 1 1
+               OpName %v "v"
+               OpName %unused_entry_point "unused_entry_point"
+       %bool = OpTypeBool
+     %v2bool = OpTypeVector %bool 2
+      %false = OpConstantFalse %bool
+       %true = OpConstantTrue %bool
+          %v = OpConstantComposite %v2bool %false %true
+       %void = OpTypeVoid
+          %6 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %6
+          %9 = OpLabel
+               OpReturn
+               OpFunctionEnd
diff --git a/test/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.wgsl b/test/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.wgsl
new file mode 100644
index 0000000..c215909
--- /dev/null
+++ b/test/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.wgsl
@@ -0,0 +1 @@
+let v = vec2<bool>(false, true);
diff --git a/test/expressions/type_ctor/vec2/explicit/f32.wgsl b/test/expressions/type_ctor/vec2/explicit/f32.wgsl
new file mode 100644
index 0000000..87b1055
--- /dev/null
+++ b/test/expressions/type_ctor/vec2/explicit/f32.wgsl
@@ -0,0 +1 @@
+let v = vec2<f32>(0.0, 1.0);
diff --git a/test/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.hlsl b/test/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.hlsl
new file mode 100644
index 0000000..8802bbb
--- /dev/null
+++ b/test/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.hlsl
@@ -0,0 +1,6 @@
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+  return;
+}
+
+static const float2 v = float2(0.0f, 1.0f);
diff --git a/test/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.msl b/test/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.msl
new file mode 100644
index 0000000..6e66829
--- /dev/null
+++ b/test/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.msl
@@ -0,0 +1,4 @@
+#include <metal_stdlib>
+
+using namespace metal;
+constant float2 v = float2(0.0f, 1.0f);
diff --git a/test/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.spvasm b/test/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.spvasm
new file mode 100644
index 0000000..d12bbf2
--- /dev/null
+++ b/test/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.spvasm
@@ -0,0 +1,22 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 10
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
+               OpExecutionMode %unused_entry_point LocalSize 1 1 1
+               OpName %v "v"
+               OpName %unused_entry_point "unused_entry_point"
+      %float = OpTypeFloat 32
+    %v2float = OpTypeVector %float 2
+    %float_0 = OpConstant %float 0
+    %float_1 = OpConstant %float 1
+          %v = OpConstantComposite %v2float %float_0 %float_1
+       %void = OpTypeVoid
+          %6 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %6
+          %9 = OpLabel
+               OpReturn
+               OpFunctionEnd
diff --git a/test/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.wgsl b/test/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.wgsl
new file mode 100644
index 0000000..87b1055
--- /dev/null
+++ b/test/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.wgsl
@@ -0,0 +1 @@
+let v = vec2<f32>(0.0, 1.0);
diff --git a/test/expressions/type_ctor/vec2/explicit/i32.wgsl b/test/expressions/type_ctor/vec2/explicit/i32.wgsl
new file mode 100644
index 0000000..ee90f91
--- /dev/null
+++ b/test/expressions/type_ctor/vec2/explicit/i32.wgsl
@@ -0,0 +1 @@
+let v = vec2<i32>(0, 1);
diff --git a/test/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.hlsl b/test/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.hlsl
new file mode 100644
index 0000000..afa632e
--- /dev/null
+++ b/test/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.hlsl
@@ -0,0 +1,6 @@
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+  return;
+}
+
+static const int2 v = int2(0, 1);
diff --git a/test/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.msl b/test/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.msl
new file mode 100644
index 0000000..2a0fc8d
--- /dev/null
+++ b/test/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.msl
@@ -0,0 +1,4 @@
+#include <metal_stdlib>
+
+using namespace metal;
+constant int2 v = int2(0, 1);
diff --git a/test/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.spvasm b/test/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.spvasm
new file mode 100644
index 0000000..2e021f9
--- /dev/null
+++ b/test/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.spvasm
@@ -0,0 +1,22 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 10
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
+               OpExecutionMode %unused_entry_point LocalSize 1 1 1
+               OpName %v "v"
+               OpName %unused_entry_point "unused_entry_point"
+        %int = OpTypeInt 32 1
+      %v2int = OpTypeVector %int 2
+      %int_0 = OpConstant %int 0
+      %int_1 = OpConstant %int 1
+          %v = OpConstantComposite %v2int %int_0 %int_1
+       %void = OpTypeVoid
+          %6 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %6
+          %9 = OpLabel
+               OpReturn
+               OpFunctionEnd
diff --git a/test/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.wgsl b/test/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.wgsl
new file mode 100644
index 0000000..ee90f91
--- /dev/null
+++ b/test/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.wgsl
@@ -0,0 +1 @@
+let v = vec2<i32>(0, 1);
diff --git a/test/expressions/type_ctor/vec2/explicit/u32.wgsl b/test/expressions/type_ctor/vec2/explicit/u32.wgsl
new file mode 100644
index 0000000..1b3006c
--- /dev/null
+++ b/test/expressions/type_ctor/vec2/explicit/u32.wgsl
@@ -0,0 +1 @@
+let v = vec2<u32>(0u, 1u);
diff --git a/test/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.hlsl b/test/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.hlsl
new file mode 100644
index 0000000..c298713
--- /dev/null
+++ b/test/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.hlsl
@@ -0,0 +1,6 @@
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+  return;
+}
+
+static const uint2 v = uint2(0u, 1u);
diff --git a/test/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.msl b/test/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.msl
new file mode 100644
index 0000000..132ee56
--- /dev/null
+++ b/test/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.msl
@@ -0,0 +1,4 @@
+#include <metal_stdlib>
+
+using namespace metal;
+constant uint2 v = uint2(0u, 1u);
diff --git a/test/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.spvasm b/test/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.spvasm
new file mode 100644
index 0000000..8c3ad8f
--- /dev/null
+++ b/test/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.spvasm
@@ -0,0 +1,22 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 10
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
+               OpExecutionMode %unused_entry_point LocalSize 1 1 1
+               OpName %v "v"
+               OpName %unused_entry_point "unused_entry_point"
+       %uint = OpTypeInt 32 0
+     %v2uint = OpTypeVector %uint 2
+     %uint_0 = OpConstant %uint 0
+     %uint_1 = OpConstant %uint 1
+          %v = OpConstantComposite %v2uint %uint_0 %uint_1
+       %void = OpTypeVoid
+          %6 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %6
+          %9 = OpLabel
+               OpReturn
+               OpFunctionEnd
diff --git a/test/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.wgsl b/test/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.wgsl
new file mode 100644
index 0000000..1b3006c
--- /dev/null
+++ b/test/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.wgsl
@@ -0,0 +1 @@
+let v = vec2<u32>(0u, 1u);
diff --git a/test/expressions/type_ctor/vec3/explicit/bool.wgsl b/test/expressions/type_ctor/vec3/explicit/bool.wgsl
new file mode 100644
index 0000000..0acf3bf
--- /dev/null
+++ b/test/expressions/type_ctor/vec3/explicit/bool.wgsl
@@ -0,0 +1 @@
+let v = vec3<bool>(false, true, false);
diff --git a/test/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.hlsl b/test/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.hlsl
new file mode 100644
index 0000000..d5acfa0
--- /dev/null
+++ b/test/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.hlsl
@@ -0,0 +1,6 @@
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+  return;
+}
+
+static const bool3 v = bool3(false, true, false);
diff --git a/test/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.msl b/test/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.msl
new file mode 100644
index 0000000..5393cb3
--- /dev/null
+++ b/test/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.msl
@@ -0,0 +1,4 @@
+#include <metal_stdlib>
+
+using namespace metal;
+constant bool3 v = bool3(false, true, false);
diff --git a/test/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.spvasm b/test/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.spvasm
new file mode 100644
index 0000000..b712760
--- /dev/null
+++ b/test/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.spvasm
@@ -0,0 +1,22 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 10
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
+               OpExecutionMode %unused_entry_point LocalSize 1 1 1
+               OpName %v "v"
+               OpName %unused_entry_point "unused_entry_point"
+       %bool = OpTypeBool
+     %v3bool = OpTypeVector %bool 3
+      %false = OpConstantFalse %bool
+       %true = OpConstantTrue %bool
+          %v = OpConstantComposite %v3bool %false %true %false
+       %void = OpTypeVoid
+          %6 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %6
+          %9 = OpLabel
+               OpReturn
+               OpFunctionEnd
diff --git a/test/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.wgsl b/test/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.wgsl
new file mode 100644
index 0000000..0acf3bf
--- /dev/null
+++ b/test/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.wgsl
@@ -0,0 +1 @@
+let v = vec3<bool>(false, true, false);
diff --git a/test/expressions/type_ctor/vec3/explicit/f32.wgsl b/test/expressions/type_ctor/vec3/explicit/f32.wgsl
new file mode 100644
index 0000000..2164502
--- /dev/null
+++ b/test/expressions/type_ctor/vec3/explicit/f32.wgsl
@@ -0,0 +1 @@
+let v = vec3<f32>(0.0, 1.0, 2.0);
diff --git a/test/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.hlsl b/test/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.hlsl
new file mode 100644
index 0000000..daa5a1c
--- /dev/null
+++ b/test/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.hlsl
@@ -0,0 +1,6 @@
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+  return;
+}
+
+static const float3 v = float3(0.0f, 1.0f, 2.0f);
diff --git a/test/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.msl b/test/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.msl
new file mode 100644
index 0000000..6b8d4ff
--- /dev/null
+++ b/test/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.msl
@@ -0,0 +1,4 @@
+#include <metal_stdlib>
+
+using namespace metal;
+constant float3 v = float3(0.0f, 1.0f, 2.0f);
diff --git a/test/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.spvasm b/test/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.spvasm
new file mode 100644
index 0000000..62e8bc3
--- /dev/null
+++ b/test/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.spvasm
@@ -0,0 +1,23 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 11
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
+               OpExecutionMode %unused_entry_point LocalSize 1 1 1
+               OpName %v "v"
+               OpName %unused_entry_point "unused_entry_point"
+      %float = OpTypeFloat 32
+    %v3float = OpTypeVector %float 3
+    %float_0 = OpConstant %float 0
+    %float_1 = OpConstant %float 1
+    %float_2 = OpConstant %float 2
+          %v = OpConstantComposite %v3float %float_0 %float_1 %float_2
+       %void = OpTypeVoid
+          %7 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %7
+         %10 = OpLabel
+               OpReturn
+               OpFunctionEnd
diff --git a/test/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.wgsl b/test/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.wgsl
new file mode 100644
index 0000000..2164502
--- /dev/null
+++ b/test/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.wgsl
@@ -0,0 +1 @@
+let v = vec3<f32>(0.0, 1.0, 2.0);
diff --git a/test/expressions/type_ctor/vec3/explicit/i32.wgsl b/test/expressions/type_ctor/vec3/explicit/i32.wgsl
new file mode 100644
index 0000000..7d28b9e
--- /dev/null
+++ b/test/expressions/type_ctor/vec3/explicit/i32.wgsl
@@ -0,0 +1 @@
+let v = vec3<i32>(0, 1, 2);
diff --git a/test/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.hlsl b/test/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.hlsl
new file mode 100644
index 0000000..9bc1dc4
--- /dev/null
+++ b/test/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.hlsl
@@ -0,0 +1,6 @@
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+  return;
+}
+
+static const int3 v = int3(0, 1, 2);
diff --git a/test/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.msl b/test/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.msl
new file mode 100644
index 0000000..941501e
--- /dev/null
+++ b/test/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.msl
@@ -0,0 +1,4 @@
+#include <metal_stdlib>
+
+using namespace metal;
+constant int3 v = int3(0, 1, 2);
diff --git a/test/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.spvasm b/test/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.spvasm
new file mode 100644
index 0000000..fe0276e
--- /dev/null
+++ b/test/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.spvasm
@@ -0,0 +1,23 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 11
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
+               OpExecutionMode %unused_entry_point LocalSize 1 1 1
+               OpName %v "v"
+               OpName %unused_entry_point "unused_entry_point"
+        %int = OpTypeInt 32 1
+      %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
+      %int_1 = OpConstant %int 1
+      %int_2 = OpConstant %int 2
+          %v = OpConstantComposite %v3int %int_0 %int_1 %int_2
+       %void = OpTypeVoid
+          %7 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %7
+         %10 = OpLabel
+               OpReturn
+               OpFunctionEnd
diff --git a/test/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.wgsl b/test/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.wgsl
new file mode 100644
index 0000000..7d28b9e
--- /dev/null
+++ b/test/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.wgsl
@@ -0,0 +1 @@
+let v = vec3<i32>(0, 1, 2);
diff --git a/test/expressions/type_ctor/vec3/explicit/u32.wgsl b/test/expressions/type_ctor/vec3/explicit/u32.wgsl
new file mode 100644
index 0000000..111a1d3
--- /dev/null
+++ b/test/expressions/type_ctor/vec3/explicit/u32.wgsl
@@ -0,0 +1 @@
+let v = vec3<u32>(0u, 1u, 2u);
diff --git a/test/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.hlsl b/test/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.hlsl
new file mode 100644
index 0000000..18899ea
--- /dev/null
+++ b/test/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.hlsl
@@ -0,0 +1,6 @@
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+  return;
+}
+
+static const uint3 v = uint3(0u, 1u, 2u);
diff --git a/test/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.msl b/test/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.msl
new file mode 100644
index 0000000..d2a07cf
--- /dev/null
+++ b/test/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.msl
@@ -0,0 +1,4 @@
+#include <metal_stdlib>
+
+using namespace metal;
+constant uint3 v = uint3(0u, 1u, 2u);
diff --git a/test/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.spvasm b/test/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.spvasm
new file mode 100644
index 0000000..e4b4797
--- /dev/null
+++ b/test/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.spvasm
@@ -0,0 +1,23 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 11
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
+               OpExecutionMode %unused_entry_point LocalSize 1 1 1
+               OpName %v "v"
+               OpName %unused_entry_point "unused_entry_point"
+       %uint = OpTypeInt 32 0
+     %v3uint = OpTypeVector %uint 3
+     %uint_0 = OpConstant %uint 0
+     %uint_1 = OpConstant %uint 1
+     %uint_2 = OpConstant %uint 2
+          %v = OpConstantComposite %v3uint %uint_0 %uint_1 %uint_2
+       %void = OpTypeVoid
+          %7 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %7
+         %10 = OpLabel
+               OpReturn
+               OpFunctionEnd
diff --git a/test/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.wgsl b/test/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.wgsl
new file mode 100644
index 0000000..111a1d3
--- /dev/null
+++ b/test/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.wgsl
@@ -0,0 +1 @@
+let v = vec3<u32>(0u, 1u, 2u);
diff --git a/test/expressions/type_ctor/vec4/explicit/bool.wgsl b/test/expressions/type_ctor/vec4/explicit/bool.wgsl
new file mode 100644
index 0000000..70cb499
--- /dev/null
+++ b/test/expressions/type_ctor/vec4/explicit/bool.wgsl
@@ -0,0 +1 @@
+let v = vec4<bool>(false, true, false, true);
diff --git a/test/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.hlsl b/test/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.hlsl
new file mode 100644
index 0000000..af7e30f
--- /dev/null
+++ b/test/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.hlsl
@@ -0,0 +1,6 @@
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+  return;
+}
+
+static const bool4 v = bool4(false, true, false, true);
diff --git a/test/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.msl b/test/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.msl
new file mode 100644
index 0000000..2d872de
--- /dev/null
+++ b/test/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.msl
@@ -0,0 +1,4 @@
+#include <metal_stdlib>
+
+using namespace metal;
+constant bool4 v = bool4(false, true, false, true);
diff --git a/test/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.spvasm b/test/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.spvasm
new file mode 100644
index 0000000..1ecbff1
--- /dev/null
+++ b/test/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.spvasm
@@ -0,0 +1,22 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 10
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
+               OpExecutionMode %unused_entry_point LocalSize 1 1 1
+               OpName %v "v"
+               OpName %unused_entry_point "unused_entry_point"
+       %bool = OpTypeBool
+     %v4bool = OpTypeVector %bool 4
+      %false = OpConstantFalse %bool
+       %true = OpConstantTrue %bool
+          %v = OpConstantComposite %v4bool %false %true %false %true
+       %void = OpTypeVoid
+          %6 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %6
+          %9 = OpLabel
+               OpReturn
+               OpFunctionEnd
diff --git a/test/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.wgsl b/test/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.wgsl
new file mode 100644
index 0000000..70cb499
--- /dev/null
+++ b/test/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.wgsl
@@ -0,0 +1 @@
+let v = vec4<bool>(false, true, false, true);
diff --git a/test/expressions/type_ctor/vec4/explicit/f32.wgsl b/test/expressions/type_ctor/vec4/explicit/f32.wgsl
new file mode 100644
index 0000000..3e7b8b6
--- /dev/null
+++ b/test/expressions/type_ctor/vec4/explicit/f32.wgsl
@@ -0,0 +1 @@
+let v = vec4<f32>(0.0, 1.0, 2.0, 3.0);
diff --git a/test/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.hlsl b/test/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.hlsl
new file mode 100644
index 0000000..bd679f3
--- /dev/null
+++ b/test/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.hlsl
@@ -0,0 +1,6 @@
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+  return;
+}
+
+static const float4 v = float4(0.0f, 1.0f, 2.0f, 3.0f);
diff --git a/test/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.msl b/test/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.msl
new file mode 100644
index 0000000..08af725
--- /dev/null
+++ b/test/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.msl
@@ -0,0 +1,4 @@
+#include <metal_stdlib>
+
+using namespace metal;
+constant float4 v = float4(0.0f, 1.0f, 2.0f, 3.0f);
diff --git a/test/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.spvasm b/test/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.spvasm
new file mode 100644
index 0000000..783aa84
--- /dev/null
+++ b/test/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.spvasm
@@ -0,0 +1,24 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 12
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
+               OpExecutionMode %unused_entry_point LocalSize 1 1 1
+               OpName %v "v"
+               OpName %unused_entry_point "unused_entry_point"
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+    %float_0 = OpConstant %float 0
+    %float_1 = OpConstant %float 1
+    %float_2 = OpConstant %float 2
+    %float_3 = OpConstant %float 3
+          %v = OpConstantComposite %v4float %float_0 %float_1 %float_2 %float_3
+       %void = OpTypeVoid
+          %8 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %8
+         %11 = OpLabel
+               OpReturn
+               OpFunctionEnd
diff --git a/test/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.wgsl b/test/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.wgsl
new file mode 100644
index 0000000..3e7b8b6
--- /dev/null
+++ b/test/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.wgsl
@@ -0,0 +1 @@
+let v = vec4<f32>(0.0, 1.0, 2.0, 3.0);
diff --git a/test/expressions/type_ctor/vec4/explicit/i32.wgsl b/test/expressions/type_ctor/vec4/explicit/i32.wgsl
new file mode 100644
index 0000000..9c86a2e
--- /dev/null
+++ b/test/expressions/type_ctor/vec4/explicit/i32.wgsl
@@ -0,0 +1 @@
+let v = vec4<i32>(0, 1, 2, 3);
diff --git a/test/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.hlsl b/test/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.hlsl
new file mode 100644
index 0000000..58b86ce
--- /dev/null
+++ b/test/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.hlsl
@@ -0,0 +1,6 @@
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+  return;
+}
+
+static const int4 v = int4(0, 1, 2, 3);
diff --git a/test/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.msl b/test/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.msl
new file mode 100644
index 0000000..b4294a3
--- /dev/null
+++ b/test/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.msl
@@ -0,0 +1,4 @@
+#include <metal_stdlib>
+
+using namespace metal;
+constant int4 v = int4(0, 1, 2, 3);
diff --git a/test/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.spvasm b/test/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.spvasm
new file mode 100644
index 0000000..88201cc
--- /dev/null
+++ b/test/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.spvasm
@@ -0,0 +1,24 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 12
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
+               OpExecutionMode %unused_entry_point LocalSize 1 1 1
+               OpName %v "v"
+               OpName %unused_entry_point "unused_entry_point"
+        %int = OpTypeInt 32 1
+      %v4int = OpTypeVector %int 4
+      %int_0 = OpConstant %int 0
+      %int_1 = OpConstant %int 1
+      %int_2 = OpConstant %int 2
+      %int_3 = OpConstant %int 3
+          %v = OpConstantComposite %v4int %int_0 %int_1 %int_2 %int_3
+       %void = OpTypeVoid
+          %8 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %8
+         %11 = OpLabel
+               OpReturn
+               OpFunctionEnd
diff --git a/test/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.wgsl b/test/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.wgsl
new file mode 100644
index 0000000..9c86a2e
--- /dev/null
+++ b/test/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.wgsl
@@ -0,0 +1 @@
+let v = vec4<i32>(0, 1, 2, 3);
diff --git a/test/expressions/type_ctor/vec4/explicit/u32.wgsl b/test/expressions/type_ctor/vec4/explicit/u32.wgsl
new file mode 100644
index 0000000..feaa000
--- /dev/null
+++ b/test/expressions/type_ctor/vec4/explicit/u32.wgsl
@@ -0,0 +1 @@
+let v = vec4<u32>(0u, 1u, 2u, 3u);
diff --git a/test/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.hlsl b/test/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.hlsl
new file mode 100644
index 0000000..014390a
--- /dev/null
+++ b/test/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.hlsl
@@ -0,0 +1,6 @@
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+  return;
+}
+
+static const uint4 v = uint4(0u, 1u, 2u, 3u);
diff --git a/test/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.msl b/test/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.msl
new file mode 100644
index 0000000..c51f246
--- /dev/null
+++ b/test/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.msl
@@ -0,0 +1,4 @@
+#include <metal_stdlib>
+
+using namespace metal;
+constant uint4 v = uint4(0u, 1u, 2u, 3u);
diff --git a/test/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.spvasm b/test/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.spvasm
new file mode 100644
index 0000000..23b7d44
--- /dev/null
+++ b/test/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.spvasm
@@ -0,0 +1,24 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 12
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
+               OpExecutionMode %unused_entry_point LocalSize 1 1 1
+               OpName %v "v"
+               OpName %unused_entry_point "unused_entry_point"
+       %uint = OpTypeInt 32 0
+     %v4uint = OpTypeVector %uint 4
+     %uint_0 = OpConstant %uint 0
+     %uint_1 = OpConstant %uint 1
+     %uint_2 = OpConstant %uint 2
+     %uint_3 = OpConstant %uint 3
+          %v = OpConstantComposite %v4uint %uint_0 %uint_1 %uint_2 %uint_3
+       %void = OpTypeVoid
+          %8 = OpTypeFunction %void
+%unused_entry_point = OpFunction %void None %8
+         %11 = OpLabel
+               OpReturn
+               OpFunctionEnd
diff --git a/test/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.wgsl b/test/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.wgsl
new file mode 100644
index 0000000..feaa000
--- /dev/null
+++ b/test/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.wgsl
@@ -0,0 +1 @@
+let v = vec4<u32>(0u, 1u, 2u, 3u);
